Posso fare il Modello->dove(‘id’, ARRAY) di più, in cui le condizioni?

Il titolo dice tutto.

Credo che non posso fare questo :

DB::table('items')->where('something', 'value')->get()

Ma quello che voglio controllare la condizione in cui per di più i valori in questo modo:

DB::table('items')->where('something', 'array_of_value')->get()

C’è un modo semplice di fare questo?

  • se sei felice con la mia risposta qui sotto, si può accettare 🙂
InformationsquelleAutor Vudew | 2015-06-08



4 Replies
  1. 8

    Se avete bisogno di parecchi parametri:

    $ids = [1,2,3,4];
    $not_ids = [5,6,7,8];
    DB::table('table')->whereIn('id', $ids)
                      ->whereNotIn('id', $not_ids)
                      ->where('status', 1)
                      ->get();
    • per me è molto preciso, oltre a Laravel modo. Forse è il caso di gusto. Come dovrebbe apparire per essere più preciso? Grazie!
    • Ci sono altri modi per fare questo, così ho detto questo, ma si sono anche a destra ci può essere un caso di gusto.
  2. 3

    Si potrebbe utilizzare una delle seguenti soluzioni:

    $items = Item::whereIn('id', [1,2,..])->get();

    o:

    $items = DB::table('items')->whereIn('id',[1,2,..])->get();
  3. 0

    È possibile utilizzare whereIn che accetta un array come secondo parametro.

    DB:table('table')
       ->whereIn('column', [value, value, value])
       ->get()

    È possibile catena di cui più volte.

    DB:table('table')->where('column', 'operator', 'value')
        ->where('column', 'operator', 'value')
        ->where('column', 'operator', 'value')
        ->get();

    Questo uso AND operatore. se avete bisogno di OR è possibile utilizzare orWhere metodo.

    Avanzata where dichiarazioni

    DB::table('table')
        ->where('column', 'operator', 'value')
        ->orWhere(function($query)
        {
            $query->where('column', 'operator', 'value')
                ->where('column', 'operator', 'value');
        })
        ->get();

Lascia un commento