2015-04-01 111 views
-1

如何显示作者姓名的书籍?
这里是我的模型:laravel 5作者姓名显示书籍

book.php中

public function authors() 
{ 
     return $this->belongsTo('App\Author'); 
} 

Author.php

public function books() 
{ 
     return $this->hasMany('App\Book'); 
} 

我的控制器:

BookController.php

use App\Author; 


public function index() 
{ 
    foreach (Book::with('authors')->get() as $book) 
    { 
     echo $book->authors->name; 
    } 
} 

错误

试图让非对象的属性

请帮助可能是什么问题?

+0

尽管雄辩很聪明,但我总是发现在关系中定义外键使得它们更可靠。顺便说一句,如果你使用'belongsTo()',你的书模型中的'authors()'不应该是单数吗? – Joe 2015-04-01 09:45:46

+0

感谢它改变后它工作单数...伟大 – sanu 2015-04-01 11:59:38

回答

1

您的代码将只显示每本书的作者姓名。

请使用此代码返回所有书籍和作者。

public function index()  
{  
    $books = Book::with('author')->get(); 

    return $books; 
} 
+0

是的,我以前试过,但它显示为空作者 – sanu 2015-04-01 11:50:19

相关问题