如何更改 symfony 管理过滤器的选项

发布于 2024-11-07 09:56:51 字数 205 浏览 0 评论 0原文

我有一个名为 ImportBundle 的表/类。 ImportBundle 有一个 active 标志,可以设置为 1 或 0。

在我的一个管理页面上,我有一个选择字段,显示所有 ImportBundle在我的数据库中。我只想看到活跃的。

我该如何改变这个?

I have a table/class called ImportBundle. ImportBundle has an active flag that can be set to 1 or 0.

On one of my admin pages I have a select field showing all the ImportBundles in my database. I would like to only see the active ones.

How do I change this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

昇り龍 2024-11-14 09:56:51

您想要更改默认活动值、删除活动字段或更改基本查询吗?

设置默认值

getFilterDefaults 方法添加到 ImportBundleGeneratorConfiguration

public function getFilterDefaults()
{
  return array('active' => true);
}

删除字段

要么从 ImportBundleGeneratorConfiguration 中取消设置过滤器中的字段code>ImportBundleFormFilter 或更改 filtergenerator.yml 标题下的 display 选项。如果 ImportBundleFormFilter 在其他地方使用,您可能需要扩展它以取消设置该字段。

更改查询

在generator.yml 或过滤器本身上设置table_method 选项。请在此处查看更多说明。

Do you want to change the default active value, remove the active field, or alter the base query?

Set the default

Add a getFilterDefaults method to ImportBundleGeneratorConfiguration:

public function getFilterDefaults()
{
  return array('active' => true);
}

Remove the field

Either unset the field from the filter in ImportBundleFormFilter or change the display option under the filter generator.yml heading. If ImportBundleFormFilter is used elsewhere, you may need to extend it to unset the field.

Alter the query

Set the table_method option in generator.yml or on the filter itself. See more instructions here.

哑剧 2024-11-14 09:56:51

如果您的选择字段是 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();
  }
}

If your select field is a sfWidgetFormDoctrineChoice, then you should set the table_method option.

For example, if your have Model with many-to-many relation to Related:

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();
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文