【问题标题】:laravel 5 display books with author namelaravel 5 显示带有作者姓名的书籍
【发布时间】:2015-04-01 08:46:59
【问题描述】:

如何显示带有作者姓名的图书?
这是我的模型:

Book.php

public function authors()
{
       return $this->belongsTo('App\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;
    }
}

错误

试图获取非对象的属性

请帮忙看看可能是什么问题?

【问题讨论】:

  • 虽然 eloquent 非常聪明,但我总是发现在关系中定义外键会使它们更可靠。顺便说一句,如果您使用belongsTo(),您的图书模型中的authors() 不应该是单数吗?
  • 感谢它在将其更改为单数后工作......很棒

标签: relationship laravel-5


【解决方案1】:

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

改为使用此代码返回所有作者所在的书籍。

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

    return $books;
}

【讨论】:

    猜你喜欢
    • 2020-06-07
    • 1970-01-01
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    • 1970-01-01
    • 2014-06-01
    • 1970-01-01
    相关资源
    最近更新 更多