Hvordan lage flere hvor klausulforespørselen bruker Laravel veltalende?

Hvordan lage flere hvor klausulforespørselen bruker Laravel veltalende?

Problem

Jeg trenger å ha flere der forholdene ved å bruke spørringsbyggeren, i et av prosjektene mine for en klient. Jeg kom med en løsning, bare ikke sikker på om dette er den beste måten å gjøre det på.

Eksempel:

$ resultater = bruker :: hvor ('dette', '=', 1)
-> hvor ('det', '=', 1)
-> hvor ('this_too', '=', 1)
-> hvor ('that_too', '=', 1)
-> hvor ('this_as_well', '=', 1)
-> hvor ('that_as_well', '=', 1)
-> hvor ('this_one_too', '=', 1)
-> hvor ('that_one_too', '=', 1)
-> hvor ('this_one_as_well', '=', 1)
-> hvor ('that_one_as_well', '=', 1)
-> få ();

Er det en bedre måte å gjøre dette på, eller skal jeg holde meg til denne metoden?

Løsning

Så lenge du vil ha all hvor bruk og operatør, kan du gruppere dem på denne måten:

$ MatchTheSe = ['Field1' => 'Value1', 'Field2' => 'Value2',…];
// Hvis du trenger en annen gruppe hvor som er et alternativ:
$ orthose = ['yet_another_field' => 'yet_another_value',…];
Deretter:
$ resultater = organisasjon :: hvor ($ matchthese)-> get ();
// med en annen gruppe
$ resultater = bruker :: hvor ($ match disse)
-> eller hvor $ orthose)
-> få ();

Ovennevnte vil resultere i slik spørsmål:

Velg * fra organisasjoner
Hvor (felt1 = verdi1 og felt2 = verdi2 og ...)
Eller (yet_another_field = yet_another_value og ...)