我正在使用AppServiceProvider与所有相关视图共享特定的管理数据。
现在,我也希望与所有与管理员相关的控制器共享管理员数据,以替换Auth::guard('admin')->user()->firstname by $admin->firstname
。
$id = Auth::guard('admin')->user()->id;
$admin = Admin::findOrFail($id)->first();
我如何与所有相关的Controller共享这段代码,以通过firstname
获得管理员$admin->firstname
?
答案 0 :(得分:0)
我会去创建一个全球中间件
php artisan make:middleware AdminCarrier
在中间件中,您可以将$admin
变量添加到$request
包中,并通过Controller访问它。
class AdminCarrier
{
public function handle($request, Closure $next)
{
$id = Auth::guard('admin')->user()->id;
$admin = Admin::findOrFail($id)->first();
$request->request->add(['admin' => $admin]);
return $next($request);
}
}
在控制器中,您可以通过以下方式访问它:
$request->admin
通过在Http/Kernel.php
上注册中间件来确保中间件是全局的