在 laravel 5.4 中为经过身份验证的用户创建全局变量
Create global variable for authenticated user in laravel 5.4
在 laravel 5.4 登录后,我可以在每个控制器中访问 Auth::user()
。但我想把它作为全局变量,可以在所有控制器和视图中使用。
在 google 之后,我测试了以下代码。
1) AppServiceProvider.php
public function boot()
{
View::share('currentUser', Auth::user());
}
但是在视图中无法访问
2) app\Http\Controllers\Controller.php
private $user;
private $signed_in;
public function __construct()
{
$this->middleware(function ($request, $next) {
$this->user = Auth::user();
$this->signed_in = Auth::check();
view()->share('signed_in', $this->signed_in);
view()->share('user', $this->user);
return $next($request);
});
}
但是在视图中无法访问
谁能帮忙提前谢谢。
我使用第二种技术得到了解决方案。
2) app\Http\Controllers\Controller.php
这个控制器是basecontroller
private $user;
private $signed_in;
public function __construct()
{
$this->middleware(function ($request, $next) {
$this->user = Auth::user();
$this->signed_in = Auth::check();
view()->share('signed_in', $this->signed_in);
view()->share('user', $this->user);
return $next($request);
});
}
我必须在每个控制器构造函数中添加以下代码 parent::__construct();
。
例如:
class StatusController extends Controller
{
public function __construct()
{
$this->middleware('auth');
parent::__construct();
}
}
现在我可以在任何视图中访问了
{{ $user->user_id }}
在 laravel 5.4 登录后,我可以在每个控制器中访问 Auth::user()
。但我想把它作为全局变量,可以在所有控制器和视图中使用。
在 google 之后,我测试了以下代码。 1) AppServiceProvider.php
public function boot()
{
View::share('currentUser', Auth::user());
}
但是在视图中无法访问
2) app\Http\Controllers\Controller.php
private $user;
private $signed_in;
public function __construct()
{
$this->middleware(function ($request, $next) {
$this->user = Auth::user();
$this->signed_in = Auth::check();
view()->share('signed_in', $this->signed_in);
view()->share('user', $this->user);
return $next($request);
});
}
但是在视图中无法访问
谁能帮忙提前谢谢。
我使用第二种技术得到了解决方案。
2) app\Http\Controllers\Controller.php
这个控制器是basecontroller
private $user;
private $signed_in;
public function __construct()
{
$this->middleware(function ($request, $next) {
$this->user = Auth::user();
$this->signed_in = Auth::check();
view()->share('signed_in', $this->signed_in);
view()->share('user', $this->user);
return $next($request);
});
}
我必须在每个控制器构造函数中添加以下代码 parent::__construct();
。
例如:
class StatusController extends Controller
{
public function __construct()
{
$this->middleware('auth');
parent::__construct();
}
}
现在我可以在任何视图中访问了
{{ $user->user_id }}