Le titre dit tout.
Je comprends que je peux faire ceci:
DB::table('items')->where('something', 'value')->get()
Mais ce que je veux vérifier la condition where pour plusieurs valeurs comme ceci:
DB::table('items')->where('something', 'array_of_value')->get()
Y a-t-il un moyen facile de faire ça?
Il y a whereIn()
:
$items = DB::table('items')->whereIn('id', [1, 2, 3])->get();
Si vous avez besoin de plusieurs paramètres:
$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();
Vous pouvez utiliser l'une des solutions ci-dessous:
$items = Item::whereIn('id', [1,2,..])->get();
ou:
$items = DB::table('items')->whereIn('id',[1,2,..])->get();
Vous pouvez utiliser whereIn
qui accepte un tableau comme second paramètre.
DB:table('table')
->whereIn('column', [value, value, value])
->get()
Vous pouvez enchaîner plusieurs fois.
DB:table('table')->where('column', 'operator', 'value')
->where('column', 'operator', 'value')
->where('column', 'operator', 'value')
->get();
Ceci utilisera l'opérateur AND
. Si vous avez besoin de OR
, vous pouvez utiliser la méthode orWhere
.
Pour les instructions where
avancées
DB::table('table')
->where('column', 'operator', 'value')
->orWhere(function($query)
{
$query->where('column', 'operator', 'value')
->where('column', 'operator', 'value');
})
->get();