我有一个常规的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()
获取用户的设置?
答案 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_settings
和tinker
即可。然后尝试访问该用户的find
。