Laravel 3闪存变量并不总是在Session中

Pau*_*scu 1 php session session-variables laravel

我正在使用以下行重定向到捆绑中的基本索引操作:

return Redirect::to_action('mybundle::base@index')->with("prevCommands", $prevCommands)->with("result", $result)->with_input();
Run Code Online (Sandbox Code Playgroud)

重定向有效但当我从会话中获取信息时,我随机获取空值,以下代码在我的索引操作中:

$view['prevCommands']  = (array)Session::get('prevCommands');
$view['result']        = (string)Session::get('result');
Run Code Online (Sandbox Code Playgroud)

上面的组合似乎只是随机工作,如果服务器需要更长的时间来响应,它往往会更好地工作.我检查变量是否在重定向之前一直正确填充.

当它发生时,两个值立即返回为null.从来没有只设置其中一个的情况.

Phi*_*rks 8

听起来你正在使用cookie会话驱动程序,并且它正在耗尽空间.我建议换到任何其他驱动程序("内存"除外).

Laravel 3提供了许多会话驱动程序.'cookie'是默认驱动程序,因为它需要零设置,但它的大小限制为4K.对于任何更严重的事情你应该考虑一个不同的司机 为了便于设置......

  • file将每个会话保存为存储/会话中的文件,因此您需要确保此位置是可写的,并且如果您在共享服务器上具有适当的权限.
  • 数据库使用默认数据库连接中的表,该文档描述了必要的模式.
  • memcachedredis使用相应的服务,一旦安装并运行了服务,它们就不需要太多设置.

值得一提的是内存驱动程序,这仅适用于测试,因为数据不是持久的(在请求结束时丢失).