我正在尝试Symfony 4,我无法正确找到此查询。同一件事在Symfony 3中还可以。我有2个实体。一个是一个人,另一个是一天。关系是多莫尼。我想全天候去特定的人
我尝试使用和加入表的成员,但对此示例没有任何作用。
//天实体
/**
* @ORMManyToMany(targetEntity="AppEntityPerson", inversedBy="days")
*/
private $person;
//个人实体
/**
* @ORMManyToMany(targetEntity="AppEntityDay", mappedBy="person")
*/
private $days;
//存储库功能
return $this->createQueryBuilder('d')
->andWhere('d.person = :person')
->setParameter('person', $person)
->getQuery()
->getResult()
;
这是我遇到的错误:
在queryexception.php第65行中:[语义错误]第0行,col 58附近 'person =:pe':错误:无效的路径表达。 StateFieldPathExpression或单个ValueDassociationField预期。
在queryexception.php行43中:
从app entity 第d选择d d.date =:日期和d.person = :person
问题与Symfony版本有关,而是关于ORM版本,我猜
因此,您可以使用身份
尝试一下return $this->createQueryBuilder('d')
->andWhere('IDENTITY(d.person) = :person')
->setParameter('person', $person)
->getQuery()
->getResult()
;
或
return $this->createQueryBuilder('d')
->leftJoin('d.person', 'p')
->andWhere('p.id = :person')
->setParameter('person', $person)
->getQuery()
->getResult()
;
您可以像$ person-> getdays((