在 Laravel 5.3.4 中,我无法访问构造中的会话变量。有没有办法做到这一点?这是我的代码:
// app/Http/Controllers/Controller.php
class Controller extends BaseController {
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
public function __construct() {
$t = Translation::where('language_id', Session::get('language_id') )->get();
View::share('t', $t);
}
}
Run Code Online (Sandbox Code Playgroud)
PS 我需要在每个页面加载之前从数据库加载翻译,用于所有控制器和视图。
在 Laravel 5.3 中,您无法在控制器的构造函数中访问会话或经过身份验证的用户,因为中间件尚未运行。
在您的控制器文件中
public function __construct()
{
$this->middleware(function ($request, $next) {
$t = Translation::where('language_id',Session::get('language_id')->get();
View::share('t', $t);Session::get('language_id');
return $next($request);
});
}
Run Code Online (Sandbox Code Playgroud)