通配符前缀Laravel 5

时间:2017-12-26 22:38:11

标签: laravel-5

Laravel 5中是否有一种方法可以获得可识别的前缀列表,例如['gbr','en','eu'],以便

/gbr/bar/baz/shoelace  // or
/eu/bar/baz/shoelace

由与

相同的控制器@方法处理
/bar/baz/shoelace

除了在第一个条件中传递附加参数foo=gbr之外?

注意Route::group前缀不起作用,因为在这种情况下可能有也可能没有前缀。此外,此策略应优先于所有其他策略,即Route将首先检查(可选)前缀。

1 个答案:

答案 0 :(得分:1)

是的,有办法。

声明路线时,您可以将其声明为

Route::get('{prefix}/bar/baz/shoelace', 'controller@method')->where('prefix', 'gbr|en|eu');

gbr|en|eu是一个简单的正则表达式,它匹配字符串gbr, en or eu。查看Regular expression constraints了解更多详情

在控制器中你可以拥有

public function method($prefix) {
    //code here
}