【发布时间】:2014-11-18 23:51:33
【问题描述】:
我正在用 Laravel 4 构建一个双语网站,我的 URL 包含一个语言环境标识符。除此之外,用正确的语言拥有漂亮的蛞蝓很重要。所以,假设我有一条路线可以让你找到mugs。法语中的等价物是 tasses。
目前我正在做的是
Route::get('{locale}/mugs', ['uses' => 'MugsController@index']);
Route::get('{locale}/mugs/{id}', ['uses' => 'MugsController@show']);
Route::get('{locale}/tasses', ['uses' => 'MugsController@index']);
Route::get('{locale}/tasses/{id}', ['uses' => 'MugsController@show']);
并且在控制器方法中进行简短的 URL/区域设置检查和重定向,以确保 slug 使用正确的语言,例如,您不会以 /fr/mugs 结束。
这行得通,但可能会变得笨拙,因为如果我再做更多路线,我每个人都会有两条。例如,我必须同时拥有{locale}/mugs/ceramic/{id} 和{locale}/tasses/ceramique/{id},等等。
有没有办法在 Laravel 中做类似{locale}/mugs|tasses/{id} 的事情?或者甚至检查正则表达式?
我知道你可以用正则表达式检查路由参数,但是你能检查实际的路径组件吗?
【问题讨论】:
标签: php laravel laravel-4 localization laravel-routing