通过中间件中的会话将变量传递到master Laravel中的刀片文件

通过中间件中的会话将变量传递到master Laravel中的刀片文件,laravel,Laravel,目前,我正在尝试共享一个使用会话ID的变量,如下所示 $currentSessionID = session()->getId(); $inCartDetails = Cart::where('session_id', $currentSessionID)->get(); View::share('inCartDetails', $inCartDetails); 我已经将其放在AppServiceProvider的启动中,但它不起作用,因为“在应用程序启动过程中无法访问会话数据,您

目前,我正在尝试共享一个使用会话ID的变量,如下所示

$currentSessionID = session()->getId();
$inCartDetails = Cart::where('session_id', $currentSessionID)->get();
View::share('inCartDetails', $inCartDetails);
我已经将其放在AppServiceProvider的启动中,但它不起作用,因为“在应用程序启动过程中无法访问会话数据,您应该使用Taylor Otwell在会话启动对话的添加事件中所说的中间件”

我按照它的说法创建了一个称为CommonData的中间件

public function handle($request, Closure $next)
{
    $currentSessionID = session()->getId();
    $inCartDetails = Cart::where('session_id', $currentSessionID)->get();
    View::share('inCartDetails', $inCartDetails);
    // return $next($request);
}

如何在所有视图的全局标题中使用来自middeware的此变量?收割台本身没有控制器,因为它包含在主刀片中。有什么想法吗?

为什么不使用helper在可变会话中存储
$inventDetails

要设置可变会话,请执行以下操作:

session(['inCartDetails' => $inCartDetails]);
要在项目中的任何位置检索变量会话(管线、控制器和视图),请执行以下操作:

echo session('inCartDetails'); // or {{ session('inCartDetails') }} for blade views