Wie lautet die Beziehungsanzahl in WhereHas Laravel?

8

Ich habe Schwierigkeiten, die Beziehungsanzahl in WhereHas zu verstehen. Auf der Dokumentseite gibt es keine Diskussion darüber, aber die API-Seite spricht darüber. Zitat von der API.

  

Builder | Builder whereHas (Zeichenfolge $ relation, Closure $ Callback, String   $ operator = '& gt; =', int $ count = 1)

     

Fügen Sie der Abfrage mit where-Klauseln eine Beziehungsanzahl hinzu.

Beispiel

A Resource Modell hat viele bis viele Relationen zu ResourceCategory

%Vor%

Beziehungsbedingung in Has

Die Beziehungsbedingung in Hat funktioniert wie erwartet.

> %Vor%

Beziehungsbedingung in WhereHas

Die Beziehungsbedingung in WhereHas funktioniert nicht wie erwartet. Ich bin sicher, ich habe es falsch verstanden.

%Vor%

Der obige Code sollte Ressourcen zurückgeben, deren Kategorien zu [1, 2, 4] gehören und die Ressource hat mehr als eine Kategorie. Aber es ist nicht.

Frage

Bitte erklären Sie die Beziehungsbedingung in WhereHas, vielleicht wäre ein Beispiel dafür sehr hilfreich.

    
hhsadiq 25.07.2015, 07:39
quelle

1 Antwort

10

Normalerweise überprüft whereHas () , ob Ihr Modell mindestens ein verwandtes Modell enthält. Sie können $ count auf einen höheren Wert setzen, um die Anzahl auf N zu erhöhen und nur Modelle abzurufen, die mindestens N ähnliche Modelle haben

Rufen Sie in Ihrem Fall

an %Vor%

gibt nur die Ressourcen zurück, die mindestens 2 verwandte Kategorien aufweisen.

    
jedrzej.kurylo 25.07.2015, 09:59
quelle

Tags und Links