2014-02-15 1 views
1

리디렉션 내가 로그인 시스템을 구축하는 코드 아래 문제의 사용이 페이지를 열지 못했습니다, 내가 AdminArticleController.php의 CRUD에
admin/login
admin/ 같은 폴더 경로를 만들려고 너무 많은 리디렉션 때문에 페이지를 열지 못했습니다
admin 아래의 경로는 로그인 여부에 관계없이 해결해야합니다. admin/ 아래의 모든 파일이 login 경로이기 때문에 당신은 리디렉션 루프를 작성하는 admin/login 또는 admin/article/..이 많은

Route::resource('admin/article','AdminArticleController'); 

답변

1
Route::group(array('prefix' => 'admin', 'before' => 'loginsession'), function() 
{ 
    Route::get('/', function() 
    { 
     print 'article'; 
    }); 
    Route::get('/login', '[email protected]'); 


    Route::post('/login', function() 
    {  
    }); 
    Route::post('/logout', function() 
{ 
    }); 
}); 

생각 .... 필터가 적용됩니다. admin/login이 실행되면 필터가 동일한 작업으로 리디렉션되기 때문에 로그인 할 수 없습니다.

login그룹 중에서. 같은 :

Route::get('/login', '[email protected]'); 

Route::group(array('prefix' => 'admin', 'before' => 'loginsession'), function() 
{ 
    Route::get('/', function() 
    { 
     print 'article'; 
    }); 


    Route::post('/login', function() 
    {  
    }); 
    Route::post('/logout', function() 
{ 
    }); 
}); 

갱신

지금까지 당신의 업데이트 가 Resoruce 노선에 적용 할 필터.

가장 쉬운 방법은

Route::when('admin/*', 'loginsession');

이 경로의 파일이 어디를 넣고 완료 ​​될 것입니다.

+0

답장을 보내 주셔서 감사합니다! 하지만 세션을 확인하는 방법은 admin/include/login과 admin/article/아래의 파일이 존재합니다. –

+1

'admin/* '이있는 주소는'loginsession' 필터 아래를 거쳐야합니다. 당신은 모든 행동을 통해 그것을 점검 할 필요가 없습니다. – itachi

+1

업데이트를 확인하십시오. – itachi

1

을 포함 할 때 방문

route.php

Route::group(array('prefix' => 'admin', 'before' => 'loginsession'), function() 
{ 
    Route::get('/', function() 
    { 
     print 'article'; 
    }); 
    Route::get('/login', '[email protected]'); 


    Route::post('/login', function() 
    {  
    }); 
    Route::post('/logout', function() 
{ 
    }); 
}); 

Route::filter('loginsession', function() 
{ 
    if(!Session::has('loggedin')) 
    { 
     return Redirect::to('admin/login'); 
    } 
}); 

UPDATE
세션을 확인하는 방법 이 존재 로그인해야하는 필터 내부에 있습니다. 로그인하지 않은 경우 Laravel이 표시됩니다 :

  1. 사용자가 로그인 했습니까? 아니요. admin/login으로 리디렉션하십시오.
  2. 그런 다음 Laravel은 loginsession 필터를 확인한 다음 을 다시으로 리디렉션하려고 시도합니다.
  3. 이동 1
필터 loginsession을 갖는 기의 외부 login 경로를 이동

진행한다.

이 줄 :

Route::get('/login', '[email protected]'); 
+0

답장을 보내 주셔서 감사합니다. 하지만 세션을 검사하는 방법은'admin /'밑의 파일은'/ login'과'admin/article/.. '을 포함합니다. –

관련 문제