【发布时间】:2014-12-15 06:28:58
【问题描述】:
使用routes.php,可以很容易地使用前缀为不同语言创建路径,例如,我们可以创建关于页面路由about 和pl/o-nas 到同一路由的url:
if (\Request::segment(1) =='pl') {
$prefix ='pl';
\App::setLocale('pl');
}
else{
$prefix ='';
\App::setLocale('en');
}
Route::group(
array('prefix' => $prefix,
function () {
Route::any('/'.trans('routes.about'), 'Controller@action');
}
);
但是我们知道 Laravel 5 默认使用注解。是否可以使用注释来实现相同的目标?目前关于在 Laravel 5 中使用注解的信息并不多。
您可以先将RouteServiceProver添加到before方法中类似的代码:
if (\Request::segment(1) =='en') {
$routePrefix ='';
$this->app->setLocale('en');
}
else{
$routePrefix ='pl';
$this->app->setLocale('pl');
}
但是我们如何在注释本身中使用这个前缀和翻译以及如何在这里使用 trans 函数?它应该是这样的,但它显然不起作用,因为您不能简单地将函数放入注释中,我不知道是否有任何方法可以在此处添加前缀。
/**
* @Get("/trans('routes.about')")
* @prefix: {$prefix}
*/
public function about()
{
return "about page";
}
【问题讨论】:
-
您是否可以使用中间件,解析任何语言要求的路由 - 并在中间件中设置它,然后再到达您的控制器?
-
@TheShiftExchange 可能我可以,但目前我不知道该怎么做
标签: laravel annotations laravel-routing laravel-5 laravel-annotations