【问题标题】:Error Laravel 5.8 Eloquent - Trying to get property 'name' of non-object错误 Laravel 5.8 Eloquent - 试图获取非对象的属性“名称”
【发布时间】:2019-12-19 10:12:27
【问题描述】:

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

P.S:如果我 dd($blog->author_name) 它给出了正确的作者 ID,但是当我调用 ->name object 时。它给出了上述错误

【问题讨论】:

  • 你能给这个dd($blog->author_name)吗??
  • 检查 belongsTo 是否返回集合。
  • dd($blog->author_name) 返回作者的 id
  • dd($blog->author_name) 请将这段代码的输出放在这里或有问题

标签: php laravel eloquent eloquent-relationship


【解决方案1】:

为关系添加键。

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;

【讨论】:

    猜你喜欢
    • 2021-07-18
    • 1970-01-01
    • 2021-06-05
    • 2019-12-31
    • 2021-10-01
    • 1970-01-01
    • 2019-12-13
    • 2021-10-08
    • 1970-01-01
    相关资源
    最近更新 更多