2013-04-19 2 views
0

,이의 라인을 따라 뭔가를 사용하여 경로에 컨트롤러 액션을 할당 .에상황에 따라 Laravel 4에서 컨트롤러 동작을 어떻게 되돌릴 수 있습니까?</p> <pre><code>Route::any('/', '[email protected]'); </code></pre> <p>하지만, 내 응용 프로그램에서 나는 사용자가 로그온되어 있는지 여부에 따라 다른 컨트롤러와 액션을 사용하려면 : Laravel 4에서

나는 이런 식으로 뭔가를 시도했다, 그러나 그것은 작동하지 않습니다

Route::any('/', function() { 
    if (Auth::check()) { 
     return '[email protected]'; 
    } else { 
     return '[email protected]'; 
    } 
}); 

내가이되는 찍은 솔루션을하지만, 나는 특히,이를 달성하기위한 적절한 방법이 있어야 느낌 순간에 ES 곳에 불과 로그인 검사보다가 발생 : 당신이 로그인 된 사용자에 대해 다른 홈 페이지를 표시 할 경우

Route::any('/', (Auth::check() ? '[email protected]' : '[email protected]')); 

답변

2

if 문이 루트 그룹의 외부해야

if (Auth::check()) 
{ 
    Route::any('/', '[email protected]'); 
} 
else 
{ 
    Route::any('/', '[email protected]'); 
} 
.

또한 인증 필터를 구현 한 다음 로그인하지 않은 사용자를 다른 페이지로 리디렉션 할 수도 있습니다.

+0

아 완벽한, 어리석은 저것을 보지 않기를 위해. 이는 홈페이지에만 적용되는 것이므로 인증 필터를 사용하여 사이트의 다른 모든 곳의 로그인 페이지로 리디렉션 할 수 있습니다. 나는이 인스턴스에 대해서만 두 번째 인증 필터를 쓸 수 있다고 가정하지만 솔루션은 완벽하게 작업을 수행합니다. – Dwight