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