2013-08-08 2 views
1

여러 세그먼트를 허용하는 동적 경로를 만들고 싶습니다.Laravel 4 여러 세그먼트가있는 동적 경로

Route::get('{slug}', '[email protected]'); 

나에게 처음으로 동적 세그먼트를 제공하고 물론 난 할 수있다 : 등등

Route::get('{slug1}/{slug2}', '[email protected]'); 

및하지만 난 더 나은 방법이있을거야이 사용

example.com/segment1 
example.com/segment1/segment2/ 
example.com/segment1/segment2/segment3 

이것을하기 위해.

답변

1

Route::get('{slug1}/{slug2}', '[email protected]');을 사용할 때의 한 가지 합병증은 가능한 모든 입력을 처리하므로 segment1/segment2/foo/bar/입니다. 당신은 아마도 많은 불필요한 논리로 끝날 것입니다.

이것은 최선의 해결책은 아니지만 그룹이 당신이 성취하려는 것을 잘 수행 할 것이라고 믿습니다.

Route::group(array('prefix' => 'segment1'), function() { 

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

    Route::group(array('prefix' => 'segment2'), function() { 

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

    }); 
}); 

아마 좀 지저분 단지 세 가지 예를 처리 할 때하지만 도움이 끝나게와 함께 작동하도록 더 멋진 계층 구조를 제공 할 수있다.

또한 before 및필터를 사용할 때 이점이 있습니다. 일부 필터를 수행하려는 경우 모든 segment2 엔드 포인트와 마찬가지로 모든 개별 엔드 포인트에 필터를 추가하는 대신 그룹에 추가 할 수 있습니다!

Route::group(array('before' => 'someFilter', 'prefix' => 'segment2'), function() { 
    // ... ... 
});