2014-09-22 4 views
0

과 라우팅 등의 고급 그 :Laravel 내가 조건부 경로를 만들기 위해 노력하고 정규식

API/사용자/1-3 API/사용자/1 + 3 API/사용자/1,2,3

은 모두 별도로 발송됩니다.

Route::get('users/{ids}', function($ids) 
{ 
    echo 'Commas'; 
})->where('ids', '[\d,]+'); 

Route::get('users/{ids}', function($ids) 
{ 
    echo 'Ranges';   
})->where('ids', '[\d-]+'); 

Route::get('users/{ids}', function($ids) 
{ 
    echo 'Id plus n'; 
})->where('ids', '[\d+]+'); 

이 작품의 각

제대로 별도로,하지만 난 그들을 함께 사용하려고하면, 마지막 하나는 작품과 다른 2 던져 (그들은 같은 영향에 재 배열 할 수 있습니다) :

나는이 "NotFoundHttpException"오류가 발생했습니다.

은 도움말

답변

1

당신은 매개 변수에 같은 이름을 사용할 수 없습니다를 감사합니다 지금 becuase, 당신은 등록 마지막으로 이전의 모든 정규식 규칙보다 우선합니다. 이는 모두 동일한 경로를 참조하기 때문에 발생합니다.

Route::get('users/{csids}', function($csids) 
{ 
    echo 'Commas'; 
})->where('csids', '[\d,]+'); 

Route::get('users/{rangeids}', function($rangeids) 
{ 
    echo 'Ranges';   
})->where('rangeids', '[\d-]+'); 

Route::get('users/{plusids}', function($plusids) 
{ 
    echo 'Id plus n'; 
})->where('plusids', '[\d+]+'); 
+0

물론! 죄책감이 거기에 있다고 생각하는 내 실제 정규식을 꼼짝 않고 바라 보았다. – jmadsen

관련 문제