Problema
Ho bisogno di avere più condizioni in cui utilizzando il costruttore di query, in uno dei miei progetti per un cliente. Ho trovato una soluzione, non sono sicuro che questo sia il modo migliore per farlo.
Esempio:
$ risultati = utente :: dove ('this', '=', 1)
-> dove ('That', '=', 1)
-> dove ('this_too', '=', 1)
-> dove ('tha_too', '=', 1)
-> dove ('this_as_well', '=', 1)
-> dove ('Tha_as_well', '=', 1)
-> dove ('this_one_too', '=', 1)
-> dove ('tha_one_too', '=', 1)
-> dove ('this_one_as_well', '=', 1)
-> dove ('tha_one_as_well', '=', 1)
-> get ();
C'è un modo migliore per farlo, o dovrei rimanere con questo metodo?
Soluzione
Finché desideri tutto il luogo in cui l'uso e l'operatore, puoi raggrupparli in questo modo:
$ matchThese = ['field1' => 'value1', 'field2' => 'value2',…];
// Se hai bisogno di un altro gruppo di dove come alternativa:
$ orthose = ['Yet_another_field' => 'yot_another_value',…];
Poi:
$ risultati = Organizzazione :: dove ($ matchthese)-> get ();
// con un altro gruppo
$ risultati = utente :: dove ($ matchthese)
-> Owhere ($ Orthose)
-> get ();
Quanto sopra si tradurrà in tale domanda:
Seleziona * dalle organizzazioni
Dove (field1 = value1 e field2 = value2 e ...)
O (Yet_another_field = Yet_another_Value e ...)