2016-06-04 2 views
0

여러 가지 방법으로 컨트롤러가 있는데 특정 인증 확인을 추가해야합니다. 인증에 실패하면 로그인 페이지를 리디렉션합니다. 그래서 이런 이유로 나는 생성자에서 하나의 private 함수와이 함수 호출을 만들었습니다.Laravel 생성자 리디렉션이 작동하지 않습니까?

class AdminController extends Controller 
{ 
    public function __construct() 
    { 
     $this->middleware('web'); 
     $this->isLogin(); 
    } 

    private function isLogin() 
    { 
     if (!empty(Auth::user())) { 
      echo "Hello"; 
     } else { 
      echo "Fasd"; 
      return Redirect::to('/login'); 
     } 
    } 
} 

인증을 찾을 수없는 경우 로그인으로 리디렉션되지 않습니다. 이것에 대한 추가 코드는 무엇입니까?

+0

대단히 감사합니다. @ 앤드류가 제 코드를 편집 해 주셔서 감사합니다. –

+0

미들웨어를 사용하려면 다음과 같이해야합니다. [link] (https://laravel.com/docs/master/middleware) [link] (http://stackoverflow.com/questions/32164695/using-laravel-auth-middleware) –

+0

미들웨어를 사용하고 싶지 않습니다. 내 코드에서 잘못 작성한 것을 제안 해 주시겠습니까? @RahmanQaiser –

답변

4

로그인 페이지 리디렉션을 수행하면 로그인 페이지 별칭 이름 routes.php로 redirect :: route를 사용합니다.

public function isLogin() 
{ 
    if (!empty(Auth::user())) { 
     echo "Hello"; 
    } else { 
     echo "Fasd"; 
     return Redirect::route('login'); 
    } 
} 
+0

오류 발생 [로그인] 경로가 정의되지 않았습니다. @sebahattin –

+0

여기에있는 route 방법은 [named route] (https://laravel.com/docs/5.2/routing#named-routes)로 리디렉션하는 데 사용됩니다. 그래서 먼저 이름을 지어주십시오. – Chay22

+0

이걸 넣어 둬도 작동하지 않습니다. @ Chay22 –

관련 문제