我从来没有听说过另一种方式......看看位于lib\vendor\symfony\lib\plugins\sfDoctrinePlugin\lib\form
sfFormFilterDoctrine
类,以了解该系统的工作原理,以及如何编写addFieldnameColumnQuery
UPDATE 要改变仅仅是为了过滤行为现场,说myfield
,从外键正常文本你可以简单的设置窗口小部件并在MymoduleFormFilter
类的一些像这样的代码重写getFields()
:
public function configure()
{
$this->setWidget('myfield', new sfWidgetFormFilterInput());
$this->setValidator('myfield', new sfValidatorPass(array('required' => false)));
}
public function getFields()
{
$fields = parent::getFields();
$fields['myfield'] = 'Text';
return $fields;
}
相反,如果你定义一个字段在你还没有根据在generator.yml写的字段名称设置控件连接表搜索
filter:
display: [... some fields ..., myfield]
,最后用添加addMyfieldColumnQuery(Doctrine_Query $query, $field, $values)
内加入和,其中代码。对不起,没有片段,因为我使用Propel。
好吧,那就是我已经去过的地方,我的观点是,这样我们必须编写3行代码,也许相反,我们可以在一个地方更改generator.yml。 – prongs 2011-12-15 06:49:45