Symfony 这种质疑众多关系的学说有什么错

Symfony 这种质疑众多关系的学说有什么错,symfony,doctrine,Symfony,Doctrine,我正在尝试Symfony 4,但我无法正确获取此查询。同样的事情在Symfony 3中也可以。我有两个实体。一个是一个人,另一个是一天。这种关系有很多种。我想得到一个特定的人所有的日子 我尝试使用成员和联接表,但在这个示例中没有任何效果 //日实体 /** * @ORM\ManyToMany(targetEntity="App\Entity\Person", inversedBy="days") */ private $person; //个人实体 /** * @ORM\ManyToMa

我正在尝试Symfony 4,但我无法正确获取此查询。同样的事情在Symfony 3中也可以。我有两个实体。一个是一个人,另一个是一天。这种关系有很多种。我想得到一个特定的人所有的日子

我尝试使用成员和联接表,但在这个示例中没有任何效果

//日实体

/**
 * @ORM\ManyToMany(targetEntity="App\Entity\Person", inversedBy="days")
 */
private $person;
//个人实体

/**
 * @ORM\ManyToMany(targetEntity="App\Entity\Day", mappedBy="person")
 */
private $days;
//存储库功能

return $this->createQueryBuilder('d')
        ->andWhere('d.person = :person')
        ->setParameter('person', $person)
        ->getQuery()
        ->getResult()
    ;
这是我得到的错误:

在QueryException.php第65行:[语义错误]第0行,第58列附近 “person=:pe”:错误:PathExpression无效。 应为StateFieldPathExpression或SingleValuedAssociationField

在QueryException.php第43行中:

从App\Entity\Day d中选择d,其中d.date=:日期和d.person= :人


问题不在于Symfony版本,而在于orm版本,我想

所以你可以用IDENTITY来试试

return $this->createQueryBuilder('d')
    ->andWhere('IDENTITY(d.person) = :person')
    ->setParameter('person', $person)
    ->getQuery()
    ->getResult()
;


问题不在于Symfony版本,而在于orm版本,我想

所以你可以用IDENTITY来试试

return $this->createQueryBuilder('d')
    ->andWhere('IDENTITY(d.person) = :person')
    ->setParameter('person', $person)
    ->getQuery()
    ->getResult()
;


您可以仅从$person->getDays()之类的关联中获取与人员相关的天数。

您可以仅从$person->getDays()之类的关联中获取与人员相关的天数。

如果我尝试以下代码,则会出现此错误:[语义错误]第0行,第67列“person)=:p:错误:无效的PathExpression。必须是SingleValuedAssociationField。是,第二个字段正在工作。你忘了)在p.id之后的andWhere部分。非常感谢。如果我尝试以下代码,就会出现此错误:[语义错误]第0行,第67列靠近“person)=:p”:错误:无效的PathExpression。必须是SingleValuedAssociationField。是,第二个字段正在工作。你忘了)在p.id之后的andWhere部分。非常感谢。是的,我知道,但这个函数的目的是为特定的人获取特定的日期。因此,我的目的也是添加过滤日期的位置$query->andWhere('d.date=:date')。是的,我知道,但这个函数的目的是为特定的人获取特定的日期。因此,我的目的也是添加过滤日期的位置$查询->andWhere('d.date=:date')。