@Velynder

Как сформировать запрос, используя Eloquent ORM?

Здравствуйте!

Помогите разобраться Eloquent ORM в Laravel 5.7

Есть задача выводить из базы список книг с указанием авторов (их может быть один или несколько).
Я сделал 3 таблицы:

books [id, name]
authors [id, name]
author_book [author_id, book_id]

в обеих моделях прописал отношения как belongsToMany
как вывести список книг или список авторов я знаю,

а вот как вывести список книг с указанием их авторов не получается.

И еще, хотел узнать, каким запросом производить запись в БД, если заносится новая книга. Чтобы данные заносились и в перекрестную таблицу?

Спасибо, всем!
  • Вопрос задан
  • 182 просмотра
Решения вопроса 1
@jazzus
Так, а документацию посмотреть?)) Про белонгстумени
Запись в сводной таблице методoм attach()
Например:
$book->authors()->attach($author_id);
Запрос конкретной книги с авторами
$book=Book::with('authors')
                  ->withCount('authors')
                  ->find($id);

Или все книги с авторами
$books=Book::with('authors')
                    ->withCount('authors')
                    ->get();

потом можно
dd($book);
и увидеть, что добавились авторы и количество авторов.
В шаблоне
@foreach ($books as $book)
          //количество авторов у книги
          {{$book->authors_count}}
          //имена авторов
          @foreach ($book->authors as $author)
            {{ $author->name }}
          @endforeach
      @endforeach

Для авторов аналогично.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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