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