In Eloquent möchte ich diese Abfrage generieren:
%Vor%Aber ich scheine stattdessen diese Abfrage zu generieren:
%Vor%Hier ist meine Implementierung und Code:
%Vor% Model
enthält:
Danke für jede Hilfe. Ich habe die Dokumente einschließlich Advanced Wheres vergeblich durchsucht.
Sie können Klammern erzeugen, indem Sie eine Callback-Funktion an where()
übergeben.
SEE EDIT FÜR ENDGÜLTIGE ANTWORT
Besser als roh, verwenden Sie oder Wo mit einer Schließung:
%Vor%Die wirklich unglückliche Sache (und die Art und Weise, wie ich in diesem Beitrag gelandet bin) ist, dass die zweite $ Abfrage in der Schließung eine Instanz von \ Illuminate \ Database \ Query \ Builder ist und nicht \ Illuminate \ Database \ Eloquent \ Builder - Dies bedeutet, dass Sie die Modellbereiche nicht innerhalb dieser Closure verwenden können, da Query \ Builder-Instanzen keinen Bezug zu einem Modell haben.
Das heißt, ich denke immer noch, das ist viel mehr ORM-ähnlich und nützlich als Entwickler.
BEARBEITEN
Es hat eine Weile gedauert, das herauszufinden, aber das wird funktionieren, wenn Sie auch Ihre Bereiche verwenden wollen:
%Vor% Ich erstelle tatsächlich einen vierten Bereich in meinem Code, der all dies umfasst, daher funktioniert $this
möglicherweise nicht in diesem Kontext. Ich finde jedoch, dass das Scoping für meine Modelle einer der wichtigsten Bestandteile des Aufbaus ist ein gutes System.
Dies sollte definitiv in Eloquent eingebaut werden - der Motor hat einen guten Start, aber so viele Funktionen fehlen.