0

私は User エンティティに多対多の自己参照関係を持っています.

現在、ユーザーが別のユーザーをフォローしているかどうかを判断するクエリをユーザー リポジトリに書き込もうとしています。

user_relations (マッピング テーブル) に直接クエリを記述しようとしましたが、ユーザー エンティティに関連していないため、できませんでした。

だから私は試しました:

$query = $this->createQueryBuilder('u')
            ->select('count(u.id)')
            ->innerJoin('u.following', 'r')
            ->where('u.id = :userID')
            ->where('r.from_id = :followingID')
            ->setParameter('userID', $userId)
            ->setParameter('followingID', $followingId)

その結果、ユーザー エンティティに from_uid という名前のフィールドがないことを示すエラーが発生します。

どうすればこれを正しく達成できますか?

4

1 に答える 1

0

MEMBER OFdoctrine キーワードを使用できます

$query = $em->createQuery('SELECT u.id FROM User u WHERE :followingID MEMBER OF u.following'); 
$query->setParameter('followingID', $followingId); 
$ids = $query->getResult();
于 2013-07-21T17:52:37.000 に答える