2013-05-03 1 views
0
if (!$validation->fails() && Auth::attempt($input)) 
      { 
       if (Auth::user()->role == ADMIN_ROLE) 
       { 
        return Redirect::to('admin'); 
       } 
       elseif (Auth::user()->role == USER_ROLE) 
       { 
        return Redirect::back(); 
       } 
      } 

시도() 메서드가 실행 된 후 TRUE를 반환하지만 이후에는 Auth :: user 속성에 오류가 발생했습니다.실행 후 Laravel Auth :: attempt()는 사용자의 속성을 가져올 수 없습니다.

Trying to get property of non-object 

왜 그런가요?

또한 인증 :: 로그인() 메소드는이> L5 +, $ this- 인 경우 유효성이 컨트롤러 네임 스페이스 내의 모든 컨트롤러에서 사용할 미세

+0

만약 Auth :: attempt()가 유효하다면 [auth code] (https://github.com/laravel/framework/blob/master/src/Illuminate/Auth/Guard.php#L271) '가 작동하면 로그인해야하며, Auth :: user()를 사용하여 다시 사용자를 얻을 수 있어야합니다. 에러가'Auth :: user()'라인과 관련이 있는지, Auth :: user()의 로직이 아닌 것인지, 아니면 역할 속성을 얻는 로직인지는 확실합니까? –

+0

Auth :: user() 안의 코드를 변경하지 않았습니다. auth config가 올바르게 설정되고, 테이블이 사용자이며, 열 역할이 있습니다. utf-8 varchar 255, 잘못된 것이 있으면 Auth :: attempt() - false를 반환해야하지만 true를 반환하므로 무언가가 누락되었지만 내용을 이해할 수 없습니다. – Hello

+0

오류 스택 추적은 무엇입니까? 실제로 어디에서 발생합니까? "비 대상의 재산을 얻으려고하는 것"이 ​​발생할 수있는 곳이 많이 있습니다. 또한 유창하고 능란한 운전자를 사용하고 있습니까? –

답변

0

작동 ... 그것을 알아낼 수 없습니다. 유효성 검증이 실패하면 오류가 오류 백으로 전송되어 종료됩니다.

$this->validate($request, [ 
    'title' => 'required|unique:posts|max:255', 
    'body' => 'required', 
]); 

// code to log user in 
// a bunch of other code 

유효성 검사에 실패하면 오류가 오류 가방으로 전송되어 어디에서나 액세스 할 수 있습니다.

관련 문제