Как сделать выборку where id = and id = из связанной таблицы в laravel?

Пользователь

от olen.shanahan , в категории: PHP , 10 месяцев назад

Как сделать выборку where id = and id = из связанной таблицы в laravel?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от jakayla , 10 месяцев назад

@olen.shanahan 

Для этого нужно использовать метод whereHas() вместе со значениями id, как показано ниже:

1
2
3
$records = Table1::whereHas('table2', function ($query) use ($id1, $id2) {
            $query->where('id', $id1)->orWhere('id', $id2);
        })->get();


Здесь метод whereHas() позволяет выполнить запрос к связанной таблице table2, используя анонимную функцию внутри которой мы можем указать условия для выборки.


В данном случае, мы используем метод where() для выборки записей с определенным значением id в таблице table2. Затем мы объединяем два условия через логический оператор OR с помощью метода orWhere().


Если нужно выполнить выборку из нескольких таблиц, можно использовать также метод join():

1
2
3
4
5
$records = DB::table('table1')
        ->join('table2', 'table1.id', '=', 'table2.table1_id')
        ->where('table1.id', '=', $id1)
        ->orWhere('table1.id', '=', $id2)
        ->get();


Здесь мы используем метод join() для объединения двух таблиц и передаем условия в метод where(). Логическое условие здесь также выполняется при помощи метода orWhere().