Jak utworzyć wiele, gdzie zapytanie klauzuli za pomocą elokwentu Laravela?

Jak utworzyć wiele, gdzie zapytanie klauzuli za pomocą elokwentu Laravela?

Problem

Muszę mieć wiele warunków, w których korzystają z producenta zapytania, w jednym z moich projektów dla klienta. Wymyśliłem rozwiązanie, po prostu nie jestem pewien, czy jest to najlepszy sposób na zrobienie tego.

Przykład:

$ wyniki = użytkownik :: gdzie („this”, '=', 1)
-> gdzie („to”, '=', 1)
-> gdzie („this_too”, '=', 1)
-> gdzie („that_too”, '=', 1)
-> gdzie („this_as_well”, '=', 1)
-> gdzie („that_as_well”, '=', 1)
-> gdzie („this_one_too”, '=', 1)
-> gdzie („that_one_too”, '=', 1)
-> gdzie („this_one_as_well”, '=', 1)
-> gdzie („that_one_as_well”, '=', 1)
-> get ();

Czy istnieje lepszy sposób, aby to zrobić, czy też powinienem trzymać się tej metody?

Rozwiązanie

Tak długo, jak chcesz wszystkiego, co używa i operator, możesz je zgrupować w ten sposób:

$ matchthese = ['field1' => 'value1', 'field2' => 'value2',…];
// Jeśli potrzebujesz innej grupy, gdzie jest alternatywa:
$ orthose = ['oni_another_field' => 'yet_another_value',…];
Następnie:
$ wyniki = organizacja :: gdzie ($ matchThese)-> get ();
// z inną grupą
$ wyniki = użytkownik :: gdzie ($ matchThese)
-> lub gdzie ($ ortose)
-> get ();

Powyższe spowoduje takie zapytanie:

Wybierz * z organizacji
Gdzie (pole 1 = wartość 1 i pole2 = wartość2 i…)
Lub (yet_another_field = yet_another_value i…)