2013-10-19 11 views
1

로그인하지 않은 사용자를 로그인 페이지로 리디렉션하기 위해 패턴 경로를 만들고 싶습니다. 검색했지만 해결책을 찾을 수 없습니다. 언제나 그렇듯이 Laravel의 문서는 쓸모가 없습니다!Laravel 4의 패턴 필터

나는 나의 routes.php

Route::when('/*', 'auth'); 

filter.php

Route::filter('auth', function() 
{ 
if (Auth::guest()) return Redirect::guest('login'); 
}); 

Route::filter('auth.basic', function() 
{ 
return Auth::basic(); 
}); 

그리고이 경로에서이 문제를 가지고 있지만 그것은 작동하지 않습니다. 어떻게해야합니까?

+0

효과가없는 것은 무엇입니까? –

+0

사용자가 'http : // mywebsite.com/public /'에 갈 때마다 이전에 로그인하지 않은 경우/login 페이지로 자동 리디렉션됩니다. 그리고 *는 내 모든 페이지에 대해이 규칙을 원하기 때문입니다. 그러나 위의 코드를 사용하면 예상대로 수행되지 않습니다. – Pars

+0

'login' 경로가 있습니까? 어떻게 생겼습니까? 로그인 경로를 어떻게 선언 했습니까? 지금 헤퍼 닌이 뭐니? –

답변

1

변경

Route::filter('auth', function() 
{ 
    if (Auth::guest()) return Redirect::route('login'); 
}); 

그래서 filters.php 사용이

Route::get('/login', array('as' => 'login', 'uses' => '[email protected]')); 

같은 로그인에 대한 경로 선언, 당신은

Route::when('*', 'auth'); 

당신은 또한 사용할 수 있습니다 사용할 수 있습니다

Route::group(array('before' => 'auth'), function() 
{ 
    // Define all routes here with auth 
    Route::get('my_first_route', function(){ /... }); 
    Route::post('my_second_route', '[email protected]'); 
}); 
+0

'auth'와'auth.basic'은 Laravel의 미리 정의 된 필터입니다. 나는 그들을 정의하지 않았다. – Pars

+0

이 작동하지 않습니다. 내가 전에 laravel 3에서 해본 적이있다. 그러나 laravel 4에서는 할 수 없다 : ( – Pars

+0

@aliA, 업데이트를 확인하고,'Route :: when ('*', 'auth');'. –