Auth :: user()有关系吗?

时间:2016-06-19 00:07:40

标签: laravel laravel-5 laravel-5.2

我有一个常规的users表,但我的user_settings文件中还有UserSettings.php表,其中包含以下关系:

public function user()
{
    return $this->belongsTo('App\Models\User');
}

我的User.php文件中的设置方法:

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

我希望能够通过Auth::user()访问用户及其设置,但执行Auth::user()->settings->column_name会给我一个错误:

  

尝试获取非对象的属性

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

3 个答案:

答案 0 :(得分:2)

你可以像这样访问它:

var_dump(Auth::user()->settings);

你不能像Auth::user()->settings->column_name那样访问它,因为你必须预先知道它。

foreach(Auth::user()->settings as $setting) {
     var_dump($setting->column_name);
}

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

你必须得到

  

尝试获取非对象的属性

错误,因为android:requiresSmallestWidthDp="600"表中可能没有针对特定用户的条目。

你们的关系看起来很正确。

只需转到您收到错误的用户的user_settingstinker即可。然后尝试访问该用户的find