2016-06-19 2 views
0

У меня есть регулярный users стола, но у меня тоже есть user_settings стола со следующим соотношением: в моем UserSettings.php файле:Auth :: user() с отношениями?

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 дает мне ошибку:

Trying to get property of non-object

Как я могу получить настройки пользователя с помощью Auth::user()?

+0

Почему это 'App \ Models \ User', а не' App \ User'? Вы создали папку «Модели» и сохранили в ней свои файлы моделей? – 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 для конкретного пользователя.

Ваши отношения выглядят правильно.

Просто перейдите к tinker и find пользователя, для которого вы получаете сообщение об ошибке. Затем попробуйте получить доступ к settings для этого пользователя.

+0

Определенно есть запись в 'user_settings' для пользователя. – user6484209