Wie werden Datensätze verglichen, die einem bestimmten Satz anderer Datensätze zugeordnet sind?

Ich versuche, meinem Projekt zwei verschiedene Suchvarianten hinzuzufügen. Es gibt ein Modell "Benutzer" und ein Modell "Tag". Ein Benutzer hat viele Tags. Jetzt möchte ich in der Lage sein, die Benutzer mit spezifischen Umbauten zu suchen. Entweder möchte ich alle Benutzer anzeigen, die eines der angegebenen Tags haben. Ich habe das so gemacht:

$query = $this->Users->find();
$query->matching('Tags', function ($q) {
    return $q->where(['Tags.name' => 'Tag1'])
             ->orWhere(['Tags.name' => 'Tag2']);
});

Aber jetzt möchte ich alle Benutzer finden, die beide Tags gleichzeitig haben. Ich habe es versucht->andWhere Anstatt von->orWhere, aber das Ergebnis ist immer leer.

Wie kann ich Benutzer finden, die mehrere Tags enthalten?

Vielen Dan

Antworten auf die Frage(2)

Ihre Antwort auf die Frage