Laravel 5 通配符前缀Laravel 5

Laravel 5 通配符前缀Laravel 5,laravel-5,Laravel 5,在Laravel 5中有没有一种方法可以让前缀列表得到认可,比如['gbr'、'en'、'eu'],这样 /gbr/bar/baz/shoelace // or /eu/bar/baz/shoelace 由同一机构处理controller@method作为 /bar/baz/shoelace 除了在第一个条件中传递附加参数foo=gbr 注意Route::group前缀不起作用,因为在这种情况下可能有前缀,也可能没有前缀。此外,此策略应优先于所有其他策略,即路由将首先检查(可选)前缀。是的

在Laravel 5中有没有一种方法可以让前缀列表得到认可,比如['gbr'、'en'、'eu'],这样

/gbr/bar/baz/shoelace  // or
/eu/bar/baz/shoelace
由同一机构处理controller@method作为

/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或eu
。查看更多详细信息

在你的控制器里你可以

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

好的,这是正确的想法,我想我以前见过,但是有没有办法限制它,使
{prefix}
只是一个特定的已知值列表?是的,有一种方法限制。检查更新的答案。它可以通过正则表达式约束来完成。希望这有帮助。