通过中间软件中的会话传递变量,以在主Laravel中的刀片文件



当前我正在尝试共享一个使用类似会话ID的变量。

$currentSessionID = session()->getId();
$inCartDetails = Cart::where('session_id', $currentSessionID)->get();
View::share('inCartDetails', $inCartDetails);

我已经将其放置在AppServiceProvider的启动中,但它不起作用,因为"在App Boot Process中无法访问会话数据,您应该使用像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);
}

我将如何在我所有观点上全球的标题中使用此变量?标题本身没有控制器,因为它包含在主叶片中。有什么想法吗?

为什么不使用session((helper?

$inCartDetails存储在变量会话中?

设置一个变量会话:

session(['inCartDetails' => $inCartDetails]);

在项目中的任何位置检索变量会话(路由,控制器和视图(:

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

最新更新