我有一个名为ImportBundle
的表/类。 ImportBundle
有一个active
标志,可以设置为1或0。
在我的一个管理页面上,我有一个显示数据库中所有ImportBundle
的选择字段。我想只看到活跃的那些。
如何更改此内容?
答案 0 :(得分:1)
是否要更改默认活动值,删除活动字段或更改基本查询?
设置默认
向getFilterDefaults
添加ImportBundleGeneratorConfiguration
方法:
public function getFilterDefaults()
{
return array('active' => true);
}
删除字段
从ImportBundleFormFilter
中的过滤器取消设置字段,或更改display
generator.yml标题下的filter
选项。如果在其他地方使用ImportBundleFormFilter
,则可能需要对其进行扩展以取消设置字段。
更改查询
在generator.yml或过滤器本身设置table_method
选项。查看更多说明here。
答案 1 :(得分:0)
如果您的select字段是sfWidgetFormDoctrineChoice,那么您应该设置table_method选项。
例如,如果您的模型具有与“相关”的多对多关系:
class ModelFormFilter extends BaseModelFormFilter
{
public function configure()
{
$this->getWidget('related_list')->setOption('table_method', 'getActive');
}
}
class RelatedTable extends Doctrine_Table
{
public function getActive()
{
return $this->createQuery('r')
->where('r.is_active = ?', true)
->execute();
}
}