Symfony form query_buider and entity repository Symfony form query_buider and entity repository symfony symfony

Symfony form query_buider and entity repository


It should be easy. Do the following:

public function queryOwnedBy($user) {    $query = $this->createQueryBuilder('a')            ->from('MyBundle:Article', 'a')            ->innerJoin('a.owndBy', 'u')            ->where('u.id = :id')                            ->setParameter('id', $user->getId());    return $query;}public function findOwnedBy($user) {    return $this->queryOwnedBy($user)            ->getQuery()            ->getResult();}

Then in the form builder:

$formOptions = array(    'class' => 'Acme\DemoBundle\Entity\User',    'multiple' => false,    'expanded' => false,    'property' => 'fullName',    'query_builder' => function(EntityRepository $er) use ($user) {        return $er->queryOwnedBy($user);    },);

EDIT

Thank's for ncatnow and unagi I've changed the previous functions to return the querybuilder


I just did a little fix of saamorim answer. The working code would be something like this:

public function queryOwnedBy($user) {    $query = $this->createQueryBuilder("u")            ->where('u.id = :id')                            ->setParameter('id', $user->getId());    return $query;}public function findOwnedBy($user) {    return $this->queryOwnedBy($user)            ->getQuery()            ->getResult();}