Laravel Auth::user()是否具有关系?

Laravel Auth::user()是否具有关系?,laravel,laravel-5,laravel-5.2,Laravel,Laravel 5,Laravel 5.2,我有一个常规的users表,但我也有一个user\u settings表,在我的UserSettings.php文件中具有以下关系: public function user() { return $this->belongsTo('App\Models\User'); } public function settings() { return $this->hasOne('App\Models\UserSettings'); } 以及我的User.php文件中的

我有一个常规的
users
表,但我也有一个
user\u settings
表,在我的
UserSettings.php
文件中具有以下关系:

public function user()
{
    return $this->belongsTo('App\Models\User');
}
public function settings()
{
    return $this->hasOne('App\Models\UserSettings');
}
以及我的
User.php
文件中的设置方法:

public function user()
{
    return $this->belongsTo('App\Models\User');
}
public function settings()
{
    return $this->hasOne('App\Models\UserSettings');
}
我希望能够通过执行
Auth::user()
访问用户及其设置,但执行
Auth::user()->settings->column\u name
会出现错误:

正在尝试获取非对象的属性


如何使用
Auth::user()
获取用户设置?

您必须在用户模型中设置设置方法:

public function settings()
{
    return $this->hasOne('App\Models\Settings');
}

您可以这样访问它:

var_dump(Auth::user()->settings);
您不能像这样访问它
Auth::user()->settings->column\u name
,因为您必须访问它

foreach(Auth::user()->settings as $setting) {
     var_dump($setting->column_name);
}
你一定是疯了

正在尝试获取非对象的属性

错误,因为特定用户的
用户设置
表中可能没有条目

你的关系看起来是正确的


只需转到
tinker
查找您要为其获取错误的用户。然后尝试访问该用户的
设置。

@user6484209
Auth::user()->settings()->column\u name
是否也返回错误?您可以打印
Auth::user()->settings吗| Auth::user()->settings()
或者它也会抛出错误吗?为什么它是
App\Models\user
而不是
App\user
?您是否创建了一个文件夹
Models
,并将您的模型文件保存在其中?用户是否已正确登录?首先尝试
dump()
Auth::user()
Auth::user()->settings
并找出什么是
null
。在
user\u settings
中肯定有一个用户条目。这对您有帮助吗@USER6484209这对你有帮助吗@用户6484209