talam0nal
@talam0nal
PHP/Laravel разработчик

Laravel. Как осуществить поиск в many to many relationship?

Есть список книг. К каждой книге привязан автор и магазин. Каждая книга может иметь несколько авторов или магазинов, соответственно здесь используется many to many relationship. Есть форма с чекбоксами: с авторами, магазинами и книгами. При клике на эти чекбоксы должны выводится соответствующие книги. Как написать запрос чтобы происходил фильтр одновременно и по автору и по магазину. Такое можно делать через whereHas, но как сделать несколько whereHas одновременно и при этом учитывать, что например автор или магазин может быть не выбран.
  • Вопрос задан
  • 284 просмотра
Решения вопроса 1
@kirill-93
$book = Book::select('id', 'name');
if ($author) {
  $book = $book->whereHas(...);
}

if ($shop) {
 $book = $book->whereHas(...);
}

$results = $book->get();

Например, так. В whereHas подставить соответствующие условия на выборку.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Nc_Soft
Join
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы