-1

多対多の関係を持つユーザーとグループの 2 つのモデルがあります。したがって、グループ化されていないすべてのユーザーを選択する必要があります。DQLで実現する必要があります。

わかりました、もう少し情報があります。私はsymfony 2でsonata admin bundleを使用しています。私のリスト ビューでは、グループと関係のないユーザーを表示したいと考えています。例: 管理パネルで管理者がユーザーを作成するとき、彼はこのユーザーのグループを選択します。ただし、フロントエンドからユーザー登録すると、このユーザーにはグループがありません。だから、私はグループなしでこのすべてのユーザーを見たいと思っています。管理クラスのソナタ管理バンドルでは、独自の DQL クエリを記述できる createQuery メソッドを継承できます。例として:

public function createQuery($context = 'list')
{
    $query = parent::createQuery($context);
    $query->andWhere('o.admin = TRUE');
    $query->orderBy('o.loginDate', 'DESC');

    return $query;
}

したがって、私の場合、グループのないユーザーを次のように選択します。

public function createQuery($context = 'list')
{
    $query = parent::createQuery($context);
    $query->addSelect('g');
    $query->leftJoin('o.groupList', 'g');

    // here I need some DQL which chose users without groups

    return $query;
}

それで、今、誰かが助けることができますか?

4

1 に答える 1

1

ArrayCollection であるグループ プロパティのように、ユーザーとの関係がある場合、単純に count(u.groups) = 0 またはそのようなユーザーを取得できますか?

于 2012-06-13T10:46:02.533 に答える