2016-06-19 63 views
0

我有一個定期users表,但我也有一個user_settings表下面的關係在我UserSettings.php文件:Auth :: user()與關係?

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

我想:

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

而且我User.php文件中的設置方法能夠通過做Auth::user()訪問用戶及其設置,但要做Auth::user()->settings->column_name會給我一個錯誤:

Trying to get property of non-object

如何使用Auth::user()獲取用戶設置?

+0

爲什麼它是App \ Models \ User而不是'App \ User'?你是否創建了一個'Models'文件夾,並保存好你的模型文件? – linuxartisan

+1

用戶登錄的權利?首先嚐試'dump()''Auth :: user()','Auth :: user() - > settings'並找出'null'。 – infernaze

回答

0

必須建立用戶模型中的設置方法:

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

我也這樣做過。 – user6484209

+0

@ user6484209 Auth :: user() - > settings() - > column_name'是否也返回錯誤?你可以打印'Auth :: user() - >設置| Auth :: user() - > settings()'或者它也會引發錯誤? – Sergeon

0

您可以訪問它,如下所示:

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

,你不能訪問它像這樣Auth::user()->settings->column_name因爲你要的foreach它。

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

這對你有幫助嗎? @ user6484209 – Codearts

0

你一定會得到

Trying to get property of non-object

誤差可能會有user_settings錶針對特定用戶的條目。

您的關係看起來正確。

只需轉到tinkerfind您遇到錯誤的用戶。然後嘗試訪問該用戶的settings

+0

用戶在'user_settings'中肯定存在一個條目。 – user6484209

相關問題