Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 05.12.2016 12:05:10

Не могу правельно сотавить запрос

Доброе утро, уже третий час ломая голову, не могу собразить как составить запрос.
У меня есть две таблицы Автор и Книги, и есть между ними отношения, один ко многим,
На главной страницы выводиться названия книг и автор, при клике на автор должно открываться его список книг(тут все нормально работает). И вот тут у меня началась загвостка, не могу понять как сделать правельно цикл что бы был выбрал автор и его книги(книг много)
вот код  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');
    }
}

Не в сети

#2 05.12.2016 13:11:07

Re: Не могу правельно сотавить запрос

А что конкретно не работает? Как пытаетесь получить информацию из связанной модели?

Не в сети

#3 05.12.2016 13:53:29

Re: Не могу правельно сотавить запрос

Не получаеться сделать, так что бы при переходе на ссылку автор, открывались ссылки на его книги, метод в Контролер autor

Не в сети

#4 05.12.2016 14:04:38

Re: Не могу правельно сотавить запрос

$autor = Autor::find($id)->book;
dd($autor);

Изменено MadHatter (05.12.2016 14:04:54)

Не в сети

#5 05.12.2016 14:26:09

Re: Не могу правельно сотавить запрос

MadHatter пишет:
$autor = Autor::find($id)->book;
dd($autor);

а автора можно выбрать

$autor->name

Не в сети

#6 05.12.2016 14:43:42

Re: Не могу правельно сотавить запрос

// Автор
$autor = Autor::find($id);
$autor->name;

// Книги
$books = $autor->book;

Не в сети

#7 05.12.2016 14:44:56

Re: Не могу правельно сотавить запрос

MadHatter пишет:
// Автор
$autor = Autor::find($id);
$autor->name;

// Книги
$books = $autor->book;

Но это все без ленивой загрузки, как вы пытались сделать в самом начале.

Не в сети

#8 05.12.2016 15:02:41

Re: Не могу правельно сотавить запрос

А если сделать, с жадной загрузкой, так как ленивая много ресурсов есть ((

Не в сети

#9 05.12.2016 15:14:53

Re: Не могу правельно сотавить запрос

Ну я имел ввиду жадную загрузку) Ошибся)

Не в сети

Подвал раздела