In my Symfony2 project, I have a query like this:
$paperQB = $this->createQueryBuilder( 'p' )
->select('p')
->where("p.title LIKE :q OR p.keywords LIKE :q OR p.abstract LIKE :q OR p.id LIKE :q")
->setFirstResult( $first_result )
->setMaxResults( $papers_per_page )
->orderBy($sort_by_culumn, $sort_by_order)
->setParameter('q', '%'.$q.'%');
Everything is fine there, but In my paper entity, I have a many to one relation with the section entity. So, I would like to get also:
"OR p.section.name LIKE :q"
How is this possible, should I use a join in order to do that? The query bilder does not know how to use those relations as in the controller: $p->getSection()->getName()
or in the twig p.section.name
?
Thanks a lot.
EDIT:
What I did for the moment:
$paperQB = $this->createQueryBuilder( 'p' )
->select('p')
->where("p.title LIKE :q OR p.keywords LIKE :q OR p.abstract LIKE :q OR p.id LIKE :q OR s.name LIKE :q OR c.name_full LIKE :q")
->leftJoin('p.conference', 'c')
->leftJoin('p.section', 's')
->setFirstResult( $first_result )
->setMaxResults( $papers_per_page )
->orderBy($sort_by_culumn, $sort_by_order)
->setParameter('q', '%'.$q.'%');
But why Query builder does not use entities and their relations ?