在我的 Symfony2 项目中,我有一个这样的查询:
$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.'%');
那里一切都很好,但是在我的纸质实体中,我与部分实体具有多对一的关系。所以,我也想得到:
"OR p.section.name LIKE :q"
这怎么可能,我应该使用连接来做到这一点吗?查询 bilder 不知道如何在控制器中使用这些关系:$p->getSection()->getName()
或在twig 中p.section.name
?
非常感谢。
编辑:
我当时做了什么:
$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.'%');
但是为什么 Query builder 不使用实体及其关系呢?