Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 与DQL查询的多个关系_Symfony_Many To Many_Dql - Fatal编程技术网

Symfony 与DQL查询的多个关系

Symfony 与DQL查询的多个关系,symfony,many-to-many,dql,Symfony,Many To Many,Dql,在我的网站上,我有用户和信息。我希望用户可以将编队添加到他们的收藏夹中。所以我在我的用户上建立了很多关系: /** * Many User have Many Phonenumbers. * @ManyToMany(targetEntity="Formation") * @JoinTable(name="users_favorites", * joinColumns={@JoinColumn(name=&q

在我的网站上,我有用户和信息。我希望用户可以将编队添加到他们的收藏夹中。所以我在我的用户上建立了很多关系:

/**
     * 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中创建了用户的收藏夹,其中包含用户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表使其工作。谢谢

我建议在您的实体中添加名称注释

@ORM\Table(name="formation")
这样,查询生成将知道您引用的实体


希望这有帮助,请保持安全。

谢谢您的回答。我在我的两个实体上添加了名称注释,但仍然存在相同的错误。好的,它起作用了,但我认为结果不是我想要的^^请详细解释您搜索的结果。也许我能帮上忙,因为这是另一个主题,所以我又发了一篇帖子:很高兴你找到了解决办法。祝你好运,保重安全:D