リンクテーブルとManyToManyの関係があるエンティティを作成する必要があります。このような:
class User
{
/**
* @ORM\ManyToMany(targetEntity="Post")
* @ORM\JoinTable(name="favorite_posts",
* joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="post_id", referencedColumnName="id")}
* )
**/
private $favoritePosts;
}
class Post
{
/**
* @ORM\ManyToMany(targetEntity="User", mappedBy="favoritePosts")
*/
private $usersInFavorite;
}
そして、Userエンティティオブジェクトを使用して、すべてのユーザーのお気に入りの投稿を取得できます。
$favorites = $user->getFavoritesPosts();
しかし、DQLまたはDoctrineQueryBuilderを使用してまったく同じ結果を取得する方法がわかりません。結果の下で、私はPOSTエンティティオブジェクトの配列を意味します。