简体   繁体   English

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

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

I am working in Laravel 5.8 and struggling with a strange error.. I want to display Blog author name on blog detail page but it gives me error Trying to get property 'name' of non-object我在 Laravel 5.8 中工作并且遇到一个奇怪的错误。我想在博客详细信息页面上显示博客作者姓名,但它给了我错误尝试获取非对象的属性“名称”

My Relation :我的关系:

Blogs > Author博客 > 作者

class Blog extends Model
{

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

}

Admin Model管理模式

class Admin extends Authenticatable
{

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

}

detail.blade.php detail.blade.php

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

PS : if I dd($blog->author_name) it gives correct id of author but when i call ->name object . PS:如果我dd($blog->author_name)它给出了作者的正确 id 但当我调用->name object it gives above error它给出了上述错误

Add keys to relationships.为关系添加键。

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
}
}

You can retrieve data by using您可以通过使用检索数据

$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