繁体   English   中英

错误 Laravel 5.8 Eloquent - 试图获取非对象的属性“名称”

[英]Error Laravel 5.8 Eloquent - Trying to get property 'name' of non-object

我在 Laravel 5.8 中工作并且遇到一个奇怪的错误。我想在博客详细信息页面上显示博客作者姓名,但它给了我错误尝试获取非对象的属性“名称”

我的关系:

博客 > 作者

class Blog extends Model
{

    public function author_name(){
        return $this->belongsTo(Admin::class);
    }

}

管理模式

class Admin extends Authenticatable
{

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

}

detail.blade.php

{{ $blog->author_name->name }}

PS:如果我dd($blog->author_name)它给出了作者的正确 id 但当我调用->name object 它给出了上述错误

为关系添加键。

class Blog extends Model
{
public function author_name()
{
    return $this->belongsTo('App\Admin','blog_id','blog_id'); //add your local key and foreign key here
}
}

class Admin extends Authenticatable
{
public function blogs() {
    return $this->hasMany('App\Blog','blog_id','blog_id'); //add your local key and foreign key here
}
}

您可以通过使用检索数据

$blog = Blog::where('blog_id',1);
if(isset($blog->author_name))
  echo $blog->author_name->name;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM