2013-09-05 6 views
6

일반적인 CRUD 방법 (색인, 생성, 저장, 표시, 편집, 업데이트, 삭제)이있는이 블로그 리소스가 있습니다.Laravel 4 인증.

나는 나의 routes.php에 다음 경로가 있습니다

Route::resource('blog', 'PostsController'); 

을하지만 지수와 쇼를 제외한 모든 제한하려면. 그래서 인덱스 괜찮

Route::get('blog', '[email protected]'); 
Route::group(array('before' => 'auth'), function() 
{ 
    Route::resource('blog', 'PostsController'); 
}); 

는 있지만 나도 몰라 어떻게 경로 표시 방법에? 아니면 다른 방법이 있습니까? 리소스를 라우팅하는 대신 모든 URI를 개별적으로 라우트하고 제한된 액세스 경로에 제한하고자하는 것을 배치해야합니까?

건배

답변

12

Laravel은 $this->beforeFilter를 사용하여 컨트롤러의 __construct 방법에 필터를 지정할 수있는 기능이 있습니다. 이 함수는 예외를 제공 할 수있는 두 번째 인수를 사용합니다 (또는 특정 메서드에 대해서만 필터를 사용 가능하게 설정). 원래 루트 파일을 사용하여 시도하고 같은 컨트롤러를 설정하십시오 Laravel documentation

class PostsController extends BaseController { 

    function __construct() { 
     // ... 
     $this->beforeFilter('auth', array('except' => array('index', 'show'))); 
     // ... 
    } 

    // ... 

참조 컨트롤러 필터. 완전히 문서화 된 것은 아니지만, Laravel의 용기에 들어가려면 here에서 시작하십시오. Laravel 5에서

+0

감사가 잘 작동 유효한 옵션 –

+1

처럼 보이는 환호 그것을 위해, 나보다 훨씬 청소기! –

+0

정확히 내가 무엇을 찾고 있었습니까. Laravel은 훌륭합니다. –

0

는 대신 같은 미들웨어 기능을 사용

$this->middleware('auth', array('except' => array('index', 'show')));