Laravel 5中是否有一种方法可以具有公认的前缀列表,例如['gbr','en','eu'],以便
/gbr/bar/baz/shoelace // or
/eu/bar/baz/shoelace
由相同的控制器@方法与
处理/bar/baz/shoelace
除了其他参数foo=gbr
在第一个条件下传递?
注意Route::group
前缀无法正常工作,因为在这种情况下可能存在或可能没有前缀。另外,此策略应优先于所有其他,即路线将首先检查(可选的)前缀。
是的,有一种方法。
在声明路线时,您可以将其声明为
Route::get('{prefix}/bar/baz/shoelace', 'controller@method')->where('prefix', 'gbr|en|eu');
gbr|en|eu
是一个简单的正则表达式,可以匹配字符串gbr, en or eu
。查看正则表达式约束以获取更多详细信息
,在您的控制器中,您可以拥有
public function method($prefix) {
//code here
}