我正在使用以下行重定向到捆绑中的基本索引操作:
return Redirect::to_action('mybundle::base@index')->with("prevCommands", $prevCommands)->with("result", $result)->with_input();
重定向有效,但当我从会话中获取信息时,我随机获取空值,以下代码在我的索引操作中:
$view['prevCommands'] = (array)Session::get('prevCommands');
$view['result'] = (string)Session::get('result');
上面的组合似乎只是随机工作,如果服务器需要更长的时间来响应,它往往会更好地工作。我检查变量是否在重定向之前一直正确填充。
当它发生时,两个值立即返回为null。从来没有只设置其中一个的情况。
答案 0 :(得分:8)
听起来你正在使用cookie会话驱动程序,而且它的空间不足。我建议换到任何其他驱动程序(“内存”除外)。
Laravel 3提供number of session drivers。 'cookie'是默认驱动程序,因为它需要零设置,但它的大小限制为4K。对于任何更严重的事情你应该考虑一个不同的司机为了便于设置...
值得一提的是memory驱动程序,这仅适用于测试,因为数据不是持久的(在请求结束时丢失)。
答案 1 :(得分:1)
没关系,我想通了,一旦我注意到Laravel 3中Sessions的cookie驱动程序实际上并没有使用PHP的内置Cookie会话机制,它就开始有意义了,它实际上将整个有效负载存储在cookie中。
由于cookie的大小限制有限,如果存储的总数据超过4K,则此机制会中断,同时记住在会话中存储实际数组的所有“填充”字符。
这也让我意识到我的应用程序的设计有问题,我不应该向会话中闪现如此庞大的数据。