以下内容在Laravel文档中有明确定义:
Route::get('/users/{userid?}', $callback);
但是如何在URI的左侧侧处理通配符?我想通过一个语句来获取以下路由:
/about-us
/en/about-us
/fr/about-us
类似的东西:
Route::get('{language_code?}/about-us', $callback);
然而,这导致了一个未解决的重定向,至少在我正在进行的项目中。总之,我如何在Laravel中处理和选择左手通配符?
答案 0 :(得分:2)
否,您不能拥有可选参数,后跟所需的模式。
它也是Github回购中的一个问题,并被 Taylor Otwell
关闭https://github.com/laravel/framework/issues/3549
建议的解决方案是:
1)在末尾添加可选参数。
2)你可以拥有一个子域名。
答案 1 :(得分:1)
正如Balarj所说“你不能有一个可选参数,后跟所需的模式”
我们可以做一些不同的事情,例如:
Route::get('{language_code?}/about-us', function($language_code){
if(!$language_code) {
// if the user has not provided the language_code param
return redirect('/about-us');
}
return 'Language is ' . $language_code;
});
然后定义default
路线
Route::get('/about-us', function() {
return 'about-us page';
});