我想在AppServiceProvider的注册方法中对域模型进行单例绑定,但是我已将所选模型的ID保存在会话中,并且该信息无法在AppServiceProvider中访问。
有人知道我如何解决我的问题吗? 这是我的代码。
class AppServiceProvider extends ServiceProvider
{
public function register()
{
$this->app->singleton(Domain::class, function ($app)
{
$request = request();
if ($request->has('d'))
{
session(['domain' => $request->get('d')]);
$domain = Domain::find($request->get('d'));
}
else
{
$domain = Domain::find(session('domain'));
}
return !is_null($domain) ? $domain : new Domain();
});
}
public function boot()
{
//
}
}
session('domain')始终为空。
谢谢
答案 0 :(得分:0)
您可以在AppProvider中使用会话,因为MW直到那里才开始。如需更多帮助或其他方式,请阅读此处: https://en.cppreference.com/w/cpp/language/using_declaration Link 1
如果要在引导方法中使用会话中的变量,则应使用Link 2。
public function boot()
{
view()->composer('*', function ($view)
{
$view->with('myVar', \Session::get('varFromSession') );
});
}