На моей сущности У меня есть коллекция массива пользователейучения QueryBuilder где В коллекции
/**
* @ORM\ManyToMany(targetEntity="\UserBundle\Entity\User", mappedBy="acr_groups")
*/
protected $users;
public function __construct() {
$this->users = new \Doctrine\Common\Collections\ArrayCollection();
}
В моей FormType я хочу, чтобы отфильтровать те группы, в которых текущий пользователь является членом:
$builder
->add('acr_group', EntityType::class, array(
'label' => 'ATS',
'class' => 'HazardlogBundle:ACRGroup',
'query_builder' => function (EntityRepository $er) use ($user) { // 3. use the user variable in the querybilder
$qb = $er->createQueryBuilder('g');
$qb->where(':user IN (g.users)');
$qb->setParameters(array('user' => $user));
$qb->orderBy('g.name', 'ASC');
return $qb;
},
'choice_label' => 'name'
))
Моего проблема, очевидно, в этой строке:
$qb->where(':user IN (g.users)');
Как использовать мою коллекцию пользователей в качестве аргумента для В()?
Hello! Можете ли вы попытаться использовать выражение 'in' следующим образом:' $ qb-> где ($ qb-> expr() -> in ('g.users', $ user)); –