繁体   English   中英

会话在 laravel 5.3 中不起作用

[英]Session not working in laravel 5.3

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

节省

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

Session($data);

拿来

Session('id');

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

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

});

我最近解决了这个问题。

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

解决方案:

首先将 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/

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

持久数据的正确语法是:

session(['key' => $data]);

要获取数据使用:

session('key');

如果可以遵循以下步骤,会话将正常工作......

第一步:

在控制器中添加以下代码(其中 Session 将用于保存数据)

use Session;

第二步:

在该控制器的方法中,会话代码如下:

Session::put('name', 'Sabuz'); 
Session::put('data', $data); 

可以保存任何数据,但要确保 put 方法的第一个参数是键,第二个是它的值

第三步:

只要会话携带该数据,就可以使用以下命令从任何地方查看该数据

$name = Session::get('name'); //get method just use the key of a put method
echo $name;

希望它将是可行的。

如果您想要持久会话,请使用session()->save()Session::save()

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

session($data);
//or
session()->put('key', 'value');

session()->save();

echo session('id');

此外,“存储”目录应该具有写权限。

chmod -R a+rw storage/

我的会话不起作用,因为我试图在控制器构造函数中放置和获取,而 Laravel 5.3 不支持在构造函数中直接放置和获取会话。 如果要在构造函数中放置和获取会话,则需要在构造函数中添加以下代码。

function __construct()
{
   $this->middleware(function ($request, $next)
   {

   });
}

我遇到了每个会话第一次写入会话的问题,但更新不起作用。

修复是旧的经典......

use Session;

保存数据

session()->put('data' => $data);

获取数据

session()->get('data');

使用会话

use Illuminate\Support\Facades\Session;

设置会话:

 Session::flash('key', 'Value');

查看文件 :

@if(Session::has('key'))
        <div class="alert-success">
            {{ Session::get('key') }}
        </div>
@endif

参考: https ://laravel.com/docs/5.3/facades#facade-class-reference https://laravel.com/api/5.3/Illuminate/Support/Facades/Session.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM