【发布时间】:2016-10-29 02:44:29
【问题描述】:
我正在开发一种适用于不同国家/地区的 CRM
这是我第一次使用 Laravel,所以我有点困惑
我的数据库如下所示:
语言
- 身份证
- 姓名
- short_name(en、ru 等)
字典
- 身份证
- 标签(登录、忘记密码等)
- 值(“登录”、“Вход”等)
- language_id
我想过这样工作:
如果用户转到http://domain.com,它将通过以下步骤重定向他:
- 如果用户过去登录并拥有使用他的语言的 cookie
- 如果没有cookie,则通过IP获取用户所在的国家/地区
- 如果该国家/地区的语言在 Languages 表中无法识别,则将用户重定向到在 config/app.php => 'locale' => 'default language' 中设置的默认语言
我想知道是否有任何方法可以做到这一点,而无需在控制器的每个函数中发送语言变量, 什么意思?
我的意思是我不不会让我的路由和控制器看起来像这样:
路线
Route::get('/{locale}', 'Auth\LoginController@showLoginForm');
Route::get('/{locale}/users/', 'UsersController@index');
Route::get('/{locale}/users/view/{id}', 'UsersController@viewUser');
控制器
public function showLoginForm($locale)
{
App::setLocale($locale);
return view('auth.login');
}
...
public function index($locale)
{
App::setLocale($locale);
return view('users.index');
}
...
我希望它在后台运行,而无需我每次都设置语言和设置路线,
谢谢!
【问题讨论】:
标签: php laravel laravel-5 multilingual