会话在 Laravel 5.3 中不起作用

UMA*_*ALI 4 php session session-variables laravel laravel-5.3

我正在尝试像下面的代码一样创建会话,但会话不起作用,请向我提供任何解决方案。

节省

$data = array(
   "id" => $row->id,
   "name" => $row->name
);

Session($data);
Run Code Online (Sandbox Code Playgroud)

拿来

Session('id');
Run Code Online (Sandbox Code Playgroud)

我也尝试过网络中间件,但直到同一个会话不起作用

Route::group(['middleware' => ['web']], function ()
{

});
Run Code Online (Sandbox Code Playgroud)

May*_*iya 6

我最近解决了这个问题。

如果您尝试在会话中保存数组,或者您想将数据推送到会话中,请尝试以下操作。

解决方案:

首先将 Kernel.php 转到“App\Http\Kernel.php”并将此行添加 \Illuminate\Session\Middleware\StartSession::class,到 $middleware 数组中。这将开始存储数据。

在此处输入图片说明


对于会话数组

Session::push('cart', $product);


对于单值

用你想要的变量替换 session_key。

Session::put('session_key');

参考:https : //www.scratchcode.io/session-not-working-in-laravel/


Ale*_*nin 4

您应该从路由中删除web中间件来解决会话问题。

持久数据的正确语法是:

session(['key' => $data]);
Run Code Online (Sandbox Code Playgroud)

要获取数据,请使用:

session('key');
Run Code Online (Sandbox Code Playgroud)