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
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.
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.