Ответ 1
Там whereIn()
:
$items = DB::table('items')->whereIn('id', [1, 2, 3])->get();
Название говорит само за себя.
Я понимаю, что я могу сделать это:
DB::table('items')->where('something', 'value')->get()
Но что я хочу проверить, где условие для нескольких значений, например, так:
DB::table('items')->where('something', 'array_of_value')->get()
Есть ли простой способ сделать это?
Там whereIn()
:
$items = DB::table('items')->whereIn('id', [1, 2, 3])->get();
Если вам нужно по нескольким параметрам:
$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();
Вы можете использовать whereIn
который принимает массив в качестве второго параметра.
DB:table('table')
->whereIn('column', [value, value, value])
->get()
Вы можете цепочки, где несколько раз.
DB:table('table')->where('column', 'operator', 'value')
->where('column', 'operator', 'value')
->where('column', 'operator', 'value')
->get();
Это будет использовать оператор AND
. если вам нужно OR
вы можете использовать метод orWhere
.
Для продвинутых where
заявления
DB::table('table')
->where('column', 'operator', 'value')
->orWhere(function($query)
{
$query->where('column', 'operator', 'value')
->where('column', 'operator', 'value');
})
->get();
Вы можете использовать одно из следующих решений:
$items = Item::whereIn('id', [1,2,..])->get();
или же:
$items = DB::table('items')->whereIn('id',[1,2,..])->get();
Также
$items = Item::where(['field1' => 'value1', 'field2' => 'value2'...])->get();
работает