在配置我的管理生成器时,我为我的列表视图创建了一个 table_method,以便加入正确的表等等。
但是,在我的编辑帖子/创建帖子部分中,我有一个相当广泛的下拉列表,目前没有加入。是否有一个等效于 table_method 的方法,我可以在这些情况下使用它来指定应该用于检索记录的方法?
提前致谢。
在配置我的管理生成器时,我为我的列表视图创建了一个 table_method,以便加入正确的表等等。
但是,在我的编辑帖子/创建帖子部分中,我有一个相当广泛的下拉列表,目前没有加入。是否有一个等效于 table_method 的方法,我可以在这些情况下使用它来指定应该用于检索记录的方法?
提前致谢。
您需要修改表单类中的相应小部件。(lib/form/doctrine 中的 SomeModelForm.class.php)。
所有的 Doctrine 小部件都接受一个“查询”选项,以允许您传递一个 Doctrine 查询来覆盖表单创建的默认查询,或者一个可以返回一个查询或一个教义集合的“table_method”选项来覆盖默认。
作为参考,请参阅:http ://www.symfony-project.org/api/1_4/sfWidgetFormDoctrineChoice
要使用查询,类似于以下内容:
$somedoctrinequery = Doctrine::getTable('ModelName')->createQuery('t')->leftJoin('t.Relation r');
$this->widgetSchema['field_name']->setOption('query', $somedoctrinequery);
或者使用 table_method:
$this->widgetSchema['field_name']->setOption('table_method', 'myMethod');