为什么我的Laravel 5.7会话无法正常工作? - php

我正在尝试使会话在Laravel 5.7中工作,但似乎无法正常工作。我不知道为什么。我看过官方文档,看了一堆SO帖子,在其他站点上对问题进行了谷歌搜索,但我仍然不知道。

基本上,我在web.php中有一条类似以下的路线:

Route::get('/some_path', 'SomeController@index');

然后,在indexSomeController方法中,我具有以下内容:

session(['test', 'Some Value']);
session(['test2', 'Some Other Value']);
session(['test3', 'Some Third Value']);
$value = session('test', 'Backup Value');
echo $value;

这样,我总是在屏幕上显示Backup Value

如果进入/storage/framework/sessions,则会看到一个会话文件,其中包含以下内容(已匿名):

a:5:{s:6:"_token";s:40:"token-here";s:9:"_previous";a:1:{s:3:"url";s:26:"http://example.com/some_path";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}i:0;s:5:"test3";i:1;s:16:"Some Third Value";}

基本上,看起来该会话可以正常工作,但似乎只存储test3。如果我注释掉控制器中的test3行,则它仅存储test2。即使我在控制器中只有test行,它仍然不会检索该值。

我还尝试使用正确的会话迁移文件la https://laravel.com/docs/5.7/session将会话切换为DB会话,但仍无法正常工作。

基本上,我不知道怎么回事。我可以说我没有使用本地的Laravel身份验证,所以我不确定这是否重要,但我认为不应该这样。另外,我尝试重新启动本地主机,但这并没有改变,并运行了以下两个命令,这两个命令似乎都没有改变:

php artisan config:clear
php artisan route:clear

最后,我尝试在控制器的顶部添加use Session,但这似乎也没有关系。

基本上,我不知道该怎么办。可能是什么原因造成的?谢谢。

参考方案

在这里发生的是,当您添加以下内容时:

会话(['test','x'])

它在会话的第0个索引处添加测试,在第1个处添加x。
现在,当您再次进行会话时[['test1','xx'])
它用新值覆盖会话的第0和第1个索引。
因此,当您打印会话数据时,您将获得最后的值。
您可以通过执行dd(session()->all())并在屏幕上看到相同内容来进行检查。
如果要建立键值关系并将数据存储在这样的位置,请使用以下语法:

session(['test'=>'x']);

session(['test1'=>'xx']);

PHP:将数组值加在一起 - php

我相信这比标题听起来要难一些,但我可能完全错了。我有一个像这样的数组:[["londrina",15],["cascavel",34],["londrina",23],['tiradentes',34],['tiradentes',21]] 我希望能够采用通用…

PHP JQuery复选框 - php

我有以下片段。 var myData = { video: $("input[name='video[]']:checked").serialize(), sinopse: $("#sinopse").val(), dia: $("#dia").val(), quem: $(&#…

PHP strtotime困境 - php

有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00�…

PHP-全局变量的性能和内存问题 - php

假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…

php-casperjs获取内部文本 - php

我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…