在我的网站上,我有用户和编队。我希望用户可以将队形添加到他们的收藏夹中。所以我对我的用户做了一个ManyToMany关系:
/**
* Many User have Many Phonenumbers.
* @ManyToMany(targetEntity="Formation")
* @JoinTable(name="users_favorites",
* joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="formation_id", referencedColumnName="id", unique=true)}
* )
*/
private $favorites;
它在BDD中创建了users_favorites,其中包含用户和单位的ID。现在,我要对此进行查询,我想与所有将此用户添加到他们的收藏夹的用户一起获得所有用户。这是我尝试过的:
public function findAllWithFormation(){
return $this->createQueryBuilder('formation')
->leftJoin('formation.favorites', 'user')
->addSelect('formation')
->addSelect('user')
->getQuery()
->getOneOrNullResult()
;
}
但是我得到这个错误:
[Semantical Error] line 0, col 100 near 'user': Error: Class App\Entity\Formation has no association named favorites
我不知道如何使用user_favorites表使其工作。谢谢
答案 0 :(得分:0)
我建议在您的实体中添加名称注释。
@ORM\Table(name="formation")
这样,查询构建将知道您所引用的实体。
希望这会有所帮助,保持安全。