Symfony2:如何通过某个属性过滤实体选择表单字段的选项?

Symfony2:如何通过某个属性过滤实体选择表单字段的选项?,第1张

概述1.)情况(简化) 我有两个实体:一个Container-entity,它只有一个Content-entity. content_id存储在Container-entity中. 2.)软删除内容实体 我实现了一个软删除内容实体的功能,所以我在Content-entity中添加了一个“已删除”的属性.一切正常. 3.)问题 现在,当我想创建一个新的Container实体时,自动生成的选项显示所有内容 1.)情况(简化)

我有两个实体:一个Container-entity,它只有一个Content-entity. content_ID存储在Container-entity中.

2.)软删除内容实体

我实现了一个软删除内容实体的功能,所以我在Content-entity中添加了一个“已删除”的属性.一切正常.

3.)问题

现在,当我想创建一个新的Container实体时,自动生成的选项显示所有内容实体 – 甚至是那些我“标记为已删除”的实体(delete-attribute = 1).

4.)问题

添加“过滤器”/“查询”的正确位置在哪里才能显示未标记为已删除的元素? (删除!= 1)

5.)我尝试过的

a.)vIEw / twig方法:我尝试修改{{form_Widget(form.contentID)}}的呈现但没有成功

b.)控制器方法:我试图在创建表单的newAction中 *** 作表单数据($form = $this-> createCreateForm($entity))但没有成功

c.)type / buildForm方法:我试图改变buildForm() – 方法……再次,没有成功

如果你能给我一个提示和/或一个简短的代码示例,我可以在哪里勾选到删除软删除选项的动作.

非常感谢你提前!

解决方法 您正在寻找实体字段query_builder选项.

您可以创建一个自定义查询来过滤结果集.

例:

$builder->add('users','entity',array(    'class' => 'AcmeHelloBundle:User','query_builder' => function(EntityRepository $repository) {        $qb = $repository->createqueryBuilder('u');        // the function returns a queryBuilder object        return $qb            // find all users where 'deleted' is NOT '1'            ->where($qb->expr()->neq('u.deleted','?1'))            ->setParameter('1','1')            ->orderBy('u.username','ASC')        ;    },));

您可以采用更通用的方法,使用doctrine filters过滤所有选择语句.

总结

以上是内存溢出为你收集整理的Symfony2:如何通过某个属性过滤实体选择表单字段的选项?全部内容,希望文章能够帮你解决Symfony2:如何通过某个属性过滤实体选择表单字段的选项?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1132099.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存