2016-06-19 4 views
0

나는 일반 users 테이블을 가지고 있지만, 나 또한 내 UserSettings.php 파일에 다음과 같은 관계가있는 user_settings 테이블이 : 내가 원하는관계가있는 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()을 사용하여 사용자 설정을 가져 오는 방법은 무엇입니까? 당신과 같이 액세스 할 수

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

왜'App \ Models \ User'가 아닌'App \ User'입니까? 'Models' 폴더를 만들고 모델 파일을 저장 했습니까? – linuxartisan

+1

사용자가 로그인 한 상태입니까? 먼저'dump()''Auth :: user()','Auth :: user() -> settings'을 시도하고'null '이 무엇인지 찾으십시오. – infernaze

답변

0

당신은 사용자 모델 내에서 설정 방법을 설정해야합니다 당신이 그것을 foreach는해야하기 때문에

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

당신은 너무 Auth::user()->settings->column_name처럼 액세스 할 수 없습니다. 특정 사용자에 대한 user_settings 테이블에 항목이 없을 수 있으므로

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

나는 그것을 또한했다. – user6484209

+0

@ user6484209'Auth :: user() -> settings() -> column_name'도 오류를 반환합니까? 'Auth :: user() -> 설정을 인쇄 할 수 있습니까? Auth :: user() -> settings()'아니면 오류가 발생합니까? – Sergeon

0

당신은

Trying to get property of non-object

오류가 발생해야합니다.

귀하의 관계가 올바른 것 같습니다.

오류가 발생하는 사용자 tinkerfind으로 이동하십시오. 그런 다음 해당 사용자의 settings에 액세스 해보십시오.

+0

분명히 사용자를위한'user_settings'에 엔트리가 있습니다. – user6484209

관련 문제