【发布时间】:2021-04-06 12:46:44
【问题描述】:
我正在尝试从中间件中的句柄函数发送一些数据:
<?php
namespace App\Http\Middleware;
class LanguageSwitcher
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (!Session::has('locale'))
{
Session::put('locale',Config::get('app.locale'));
}
App::setLocale(session('locale'));
$locale = session('locale'); // => The data I want to send
return $next($request);
}
}
我的 web.php:
Route::group(['middleware'=>'language'], function () {
// I want to set the prefix to locale here, but it's undefined
Route::group(['prefix' => $locale], function () {
});
});
我尝试使用Session::get('locale') 在 web.php 中获取 $locale,但我得到了 Null。
那么,有没有办法从中间件发送到路由呢?
【问题讨论】:
-
并且
App::getLocale()设置为默认值,所以我也不能用了! -
你可以使用 [Laravel Localization](github.com/mcamara/laravel-localization) 安静地处理这一切。
-
针对您的情况的一个肮脏解决方案是:您可以在路由中使用
session('locale')。 -
下面的所有答案都是完全没用的。标题与语言环境无关。当我搜索这个时,我希望找到标题中提出的问题的答案。这当然是 OP 的错,而不是回答者的错。
标签: php laravel middleware