2016-11-30 9 views
0

나는 ProfileControllerCategoryController을 가지고 있습니다.다른 컨트롤러를 사용하는 Laravel 5.2에서 동일한 레벨의 동적 경로

나는 다음과 같은 경로 내 사용자의 프로파일을 보여주고 싶은 : 그냥 페이스 북과 같은

my.domain.com/firstname.lastname 
my.domain.com/firstname2.lastname2 
... 

그것을하고있다. 아무 문제가 없다

Route::get('/{userSlug}', array('uses' => '[email protected]'));

을하고 그것을 잘 작동합니다 : 따라서, 나는 ProfileController 그래서 나는이 같은 경로로 결국 내에서이 문제를 처리합니다. 하지만 지금이처럼 내 범주를 보여주고 싶은 :

my.domain.com/category-1 
my.domain.com/category-2 
... 

문제는이 같은 경로를 할 것입니다 : Route::get('/{categorySlug}', array('uses' => '[email protected]')); 그러나이 경로는 이미 프로필에 의해 사용된다.

슬러그가 userSlug 또는 categorySlug 일 경우 컨트롤러 하나만 사용할 수 있지만 실제로 프로필 논리를 자체 논리 컨트롤러에서 분리하려는 경우 유용합니다.

여기에서 모범 사례는 무엇입니까? 사용자 경로가 항상/firstname.lastname의 형태로 될 경우

+0

귀하의 카테고리 슬러그는 실제로 "카테고리 -1"및 "카테고리 -2"등입니까? – TunaMaxx

+0

아니요, 사실 모든 텍스트가 될 수 있습니다. – Phil

답변

0

, 당신은 Regular Expression Constraints을 시도 할 수 :

다음
Route::get('/{userSlug}', array('uses' => '[email protected]')) 
     ->where('name', '[a-z]+\.[a-z]+'); 

, 당신의 포괄 카테고리 경로와 그 후속. 그러나 카테고리 URL 앞에 접두사 (예 : /category/category-1)를 사용하는 것이 좋습니다.

+0

감사합니다. 내가 필요한 것입니다. 나는 경로 정의 뒤에 "어디에서"할 수 있는지 몰랐다. 기본적으로 ProfileController에 들어가는 방법을 찾고 있었고, 슬러그가 프로파일 슬러그인지 아닌지 확인하고, 라우트 파일로 돌아가서 다음 일치하는 경로를 취하여 CategoryController에 도달했습니다. 그러나 이것이 불가능한 것처럼 보입니다. – Phil