【问题标题】:How can I get my session data inside my constructor function in the controller如何在控制器的构造函数中获取会话数据
【发布时间】:2021-04-26 10:11:09
【问题描述】:

这是代码的一部分。

        class StudentController extends Controller
        {
                public function __construct(Request $request) 
                {
                    $school = session('school_data');

                    $this->middleware($school); 
                }
        }

现在,我也尝试使用dd($school) 检查$school,但它返回null

注意:会话变量在同一控制器内的其他函数中起作用。

【问题讨论】:

  • 这个控制器是通过依赖注入实例化的吗?如果是这样,我猜该会话可能还不可用。
  • 我刚决定手动写在那里,我该如何使用依赖注入
  • 我已经将 Illuminate\Http\Request 放在了文件的顶部
  • 这行不通。你想做什么?
  • 我只需要动态放置中间件守卫,因为每个不同的学校都有很多守卫

标签: php laravel constructor


【解决方案1】:

您的会话尚未准备好。 如果你想使用它们,请使用如下:

class StudentController extends Controller
{
    public function __construct(Request $request) 
    {
        $this->middleware(function ($request, $next) {
            // fetch session and use it in entire class with constructor
            $this->school_data = session()->get('school_data');

            return $next($request);
        });
    }
}

从这里:laravel - Can't get session in controller constructor

【讨论】:

    猜你喜欢
    • 2017-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多