我從來沒有聽說過另一種方式......看看位於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