我有许多实体(使用Symfony2 Console 自动生成),在数据库中的结构如下:
生成的实体如下:
$dql = $em->createQuery("SELECT o FROM PanelBundle:Offers o WHERE o.idState = :state");
$dql->setParameter('state', $this->getUser()->getIdAgency()->getIdZone()->getIdState());
$offersState = $dql->getResult();
事实证明,我选择属于特定州的投标,我所做的是:
[Semantical Error] line 0, col 43 near 'idState = :s': Error: Invalid PathExpression. StateFieldPathExpression or SingleValuedAssociationField expected.
但是我返回了以下错误:
SELECT o FROM PanelBundle:Offers o JOIN o.idState os WHERE os.id = :state
有没有人想过什么?你知道怎么在这些机构咨询吗?
问候并谢谢
以下是用于特定州的产品和不属于任何(独立)的所有要约的DQL查询。可能有一种更简单的方法,如果有人知道,你发布它。
SELECT o FROM PanelBundle:Offers o WHERE o.id NOT IN (SELECT x.id FROM PanelBundle:Offers x JOIN x.idState os)
{{1}}
答案 0 :(得分:1)
你应该加入州表。
$qb
->from('PanelBundle:Offers', 'o')
->select('o')
->join('PanelBundle:States', 's')
->andWhere('o.state = :state');
// ....