Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取后,laravel返回null_Php_Laravel_Session_Post - Fatal编程技术网

Php 获取后,laravel返回null

Php 获取后,laravel返回null,php,laravel,session,post,Php,Laravel,Session,Post,我有一个post函数,我想在会话中添加一个数组,并在其他页面中使用它。但运行一次后,返回null: $arr = [1,2,3]; session::put("a",$arr); $b = session::get("a"); ... session::put("a",$b); dd($b); => [ 0=> 1, 1=>2, 2=>3 ] 现在在下一篇发送帖子中,我评论了前两行: //$arr = [1,2,3]; //session::put("a",$arr)

我有一个post函数,我想在会话中添加一个数组,并在其他页面中使用它。但运行一次后,返回null:

$arr = [1,2,3];
session::put("a",$arr);
$b = session::get("a");
...
session::put("a",$b);
dd($b);

=> [
0=> 1,
1=>2,
2=>3
]
现在在下一篇发送帖子中,我评论了前两行:

//$arr = [1,2,3];
//session::put("a",$arr);
$b = session::get("a");
...
session::put("a",$b);
dd($b);

=> null

为什么返回空值?

您不能在会话中存储数组。您可以使用json_编码和json_解码来实现这一点。例如:

$arr = [1,2,3];
session::put("a",json_encode($arr));
$b = session::get("a");
然后,在另一页中,您可以执行以下操作:

$b = json_decode(session::get("a"), true);
...
dd($b); // should print an array.
如果希望对象嵌入数组,请删除第二个参数:true,以进行json_解码


在PHP文档中查看这些示例,您必须了解laravel中会话的生命周期。根据您的代码,您试图在生命周期结束之前转储数据。您应该做的是让生命周期首先通过返回响应来完成,然后通过转储数据或返回响应来获取下一个请求中的数据,因此,您不需要停止生命周期。

但我需要从会话中获取阵列数量,并在其中添加新值,然后在一个请求中向会话添加新阵列。您能否提供有关在一个请求中所做更改的更多详细信息?因为如果您只需要在一个请求中进行更改,您可以首先输入变量,在请求结束时,您可以将数据输入会话。