2014-09-22 87 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

你不能爲參數使用相同的名稱,監守現在,您可以覆蓋與最後一個登記的所有先前的正則表達式規則。發生這種情況是因爲它們都指向相同的路線:

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 2014-09-22 12:50:40