使用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";
}