【发布时间】:2016-05-29 23:48:42
【问题描述】:
我建立了一个多语言网站,为了显示正确的语言,我做了这样的事情:
Routes.php:
Route::group(['middleware' => 'web', 'prefix' => '{locale}'], function () {
Route::auth();
Route::get('home', 'HomeController@index');
etc...
});
我的控制器:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Http\Requests;
use Illuminate\Http\Request;
class HomeController extends Controller
{
public function index($locale)
{
app()->setLocale($locale);
return view('home');
}
}
如您所见,我从前缀中获取了局部变量,并在每个函数中将应用设置为本地。
这是完美的工作,但我想知道是否有更好的方法来做到这一点?感觉有点多余。。
我正在考虑直接在路由组中将应用设置为本地。 像这样的:
Route::group(['middleware' => 'web', 'prefix' => '{locale}'], function ($locale) {
app()->setLocale($locale);
Route::auth();
Route::get('home', 'HomeController@index');
...
});
但这显然不起作用..有人已经处理过这种事情吗?
【问题讨论】: