表格中的Symfony2过滤器集合

时间:2015-04-23 06:12:47

标签: entity-framework symfony doctrine symfony-forms

我们有User实体,它与其他实体有关系(OneToMany)。在为用户实体构建FormType时。我们已将相关实体作为集合。

         $builder->add('sso_users_organization', "collection", array('type'=>new UsersOrganizationType(),'allow_add' => true) );

我们希望仅根据状态“有效”显示关联实体的过滤。

我们尝试过以下方式进行过滤。

$organizations = $userEntity->getSsoUsersOrganization();
foreach($organizations as $key=>$org){
    if($org->getStatus() == 0){
       unset($organizations[$key]);
    }
}

但是当我们保存详细信息时,状态为“非活动”的其他记录将被删除。

请任何人帮助我。

谢谢

1 个答案:

答案 0 :(得分:0)

尝试这样的事情。 $ er是由" class"指定的类型的实体存储库。在这种情况下,UsersOrganizationTypeRepository

$builder->add('sso_users_organization', "entity", array(
    "class" => "Acme\AppBundle\UsersOrganizationType",
    "query_builder" => function(EntityRepository $er){
         return $er->createQueryBuilder('uot')
             ->where('uot.active = true');
     }
 );