Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Доброе утро, уже третий час ломая голову, не могу собразить как составить запрос.
У меня есть две таблицы Автор и Книги, и есть между ними отношения, один ко многим,
На главной страницы выводиться названия книг и автор, при клике на автор должно открываться его список книг(тут все нормально работает). И вот тут у меня началась загвостка, не могу понять как сделать правельно цикл что бы был выбрал автор и его книги(книг много)
вот код Contoller
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Autor;
use App\Book;
class HomeController extends Controller
{
public function Index()
{
$books = Book::with('autor')->get();
return view('welcome', ['books' => $books]);
}
public function Autor($id)
{
$autor = Autor::with('book')->find($id);
return view('autor', ['autor' => $autor]);
}
}
Метод Index нормально работает а вот метод autor нет
Код моделий
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Book extends Model
{
public function autor()
{
return $this->belongsTo('App\Autor');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Autor extends Model
{
public function book()
{
return $this->hasMany('App\Book');
}
}
Не в сети
А что конкретно не работает? Как пытаетесь получить информацию из связанной модели?
Не в сети
Не получаеться сделать, так что бы при переходе на ссылку автор, открывались ссылки на его книги, метод в Контролер autor
Не в сети
$autor = Autor::find($id)->book;
dd($autor);
Изменено MadHatter (05.12.2016 14:04:54)
Не в сети
$autor = Autor::find($id)->book; dd($autor);
а автора можно выбрать
$autor->name
Не в сети
// Автор
$autor = Autor::find($id);
$autor->name;
// Книги
$books = $autor->book;
Не в сети
// Автор $autor = Autor::find($id); $autor->name; // Книги $books = $autor->book;
Но это все без ленивой загрузки, как вы пытались сделать в самом начале.
Не в сети
А если сделать, с жадной загрузкой, так как ленивая много ресурсов есть ((
Не в сети
Ну я имел ввиду жадную загрузку) Ошибся)
Не в сети
Страницы 1