Laravel一对一关系显示非对象属性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel一对一关系显示非对象属性相关的知识,希望对你有一定的参考价值。

我正在尝试基本的laravel一对一关系,但是有一个错误。我有一个名为posts的表(我将附上图像)和一个Model Post.php。当我尝试从Route.php获取结果时,它显示错误。MySql tableError messageUser.php

public function post()
{
    return $this->hasOne('AppPost');
}

Route.php

Route::get('/user/post', function () {
 $post = User::find(1)->post;
return $post;

});

答案

您需要按照以下方式更改路线才能使用:

Route::get('/user/post', function () {
 $user = User::with('post)->where('id', 1)->get();
 return $user->post;
});
另一答案

您是否将用户模型正确插入了route.php?如果是这样,请确保在模型中使用受保护的$ fillable = []。您的路线和关系都很好,问题一定出在模型的其他地方。

以上是关于Laravel一对一关系显示非对象属性的主要内容,如果未能解决你的问题,请参考以下文章

Laravel:从关系而不是整个对象返回属性

Laravel Eloquent 关系返回试图获取非对象的属性'office_name'

Laravel 属于试图获取非对象的属性

Laravel 5.6 - “试图获取非对象的属性”

Laravel:试图获取非对象的属性

如何解决 laravel 数据表中的“尝试获取非对象的属性‘名称’”错误?