Laravel - 如何访问相关对象其他关系

Posted

技术标签:

【中文标题】Laravel - 如何访问相关对象其他关系【英文标题】:Laravel - How to access related object other relashionship 【发布时间】:2019-09-09 00:02:53 【问题描述】:

我有 3 个模型“类别”、“帖子”和“用户”。 Category 与 Post 具有 hasMany 关系。并且 Post 与 User 具有 belongsTo 关系。

我有一个 Category 对象 $cat1,我可以在我的视图中访问它的帖子(和 user_id),但我无法访问更多用户数据(行名)

@foreach ($cat1->posts as $post)
     $post->title 
     $post->user()->name 
@endforeach

这会引发错误

未定义的属性: Illuminate\Database\Eloquent\Relations\BelongsTo::$name

【问题讨论】:

【参考方案1】:

你可以这样访问它:

 $post->user->name 

调用函数的时候是查询关系。

【讨论】:

它不起作用。抛出错误:尝试获取非对象的属性 @Badr 你能从你的 Post 模型中展示你的用户方法吗? public function user() return $this->belongsTo(User::class); 在这里。 我有其他具有相同关系的模型,并且它正在使用您的语法,所以我一定错过了其他东西,检查.. @Badr 在你的 Post 模型中属性是 user_id

以上是关于Laravel - 如何访问相关对象其他关系的主要内容,如果未能解决你的问题,请参考以下文章

如何访问输入的令牌值 - Laravel API

我如何扩展laravel转换器(任何其他组件)?

如何访问laravel中的对象字段?

Laravel 关系

如何最好地链接到 Laravel 中的多态关系

Laravel - 渴望加载多态关系的相关模型