所有人。
控制器上的每个功能,我都使用相同的变量。
public function store(Request $request)
{
$user = auth()->user();
$user_name = $user->name;
$user_id = $user->id;
$init_pdf = url('/') . '/images/' . 'upload/' . $user_name . '/' . $name;
...
}
public function signedPdf(request $request)
{
$user = auth()->user();
$user_name = $user->name;
$user_id = $user->id;
$name = $user_name . $user_id . '.' . $file->extension();
...
}
我想为通用变量设置全局变量。
如何设置?
谢谢
答案 0 :(得分:1)
通常,您可以直接在构造函数中进行设置,但是Controllers在中间件方面存在问题。在请求通过中间件堆栈之前,已解析控制器。这意味着您通常将没有会话或身份验证之类的功能。您可能想在Controller的构造函数中使用基于闭包的中间件来设置此值:
protected $user;
public function __construct()
{
$this->middleware(function ($request, $next) {
$this->user = $request->user();
// also can set other variables here as well
// let the request continue through the stack
return $next($request);
});
}
然后,您应该可以在方法中访问$this->user
。
另一个答案:Assign user values for whole controller in laravel
基本上是重复的。