【问题标题】:Laravel 4 not passing session value from controller to viewLaravel 4 没有将会话值从控制器传递到视图
【发布时间】:2014-04-12 10:17:41
【问题描述】:

我有一个控制器,我在其中存储一个像这样的会话值

if(!Session::isStarted())
   Session::start();
}
Session::put('total', $total);

在视图中我试图检索这个值:

if(!Session::isStarted()){
    Session::start();
}
var_dump(Session::all());  // <-- value 'total' not showing

这是会话的输出

array(2) { ["_token"]=> string(40) "IzsMtiTOfMpoOzLj53YyMYEMAUHr4mLMnIAWcnaJ" ["flash"]=> array(2) { ["old"]=> array(0) { } ["new"]=> array(0) { } } } 

【问题讨论】:

  • 您使用的是什么会话驱动程序?
  • 我已经解决了!,我只需要把 Session::save() (我正在使用文件驱动程序)

标签: php session laravel laravel-4


【解决方案1】:

你不需要使用这个:

if(!Session::isStarted())
    Session::start();
}

session 将由框架启动,您可以简单地使用:

Session::put('total', $total);

您需要在app/config/session.php 文件中配置/设置driver,默认情况下Laravel 使用file 驱动程序,它在app/config/session.php 中设置如下:

'driver' => 'file',

Laravel 4 没有将会话值从控制器传递到视图

实际上您不需要通过会话,如果您在应用程序的任何位置设置session,那么它将在您的应用程序的任何位置可用,您可以从您的view 访问它,您不需要不需要传递它,但您必须在访问之前将值设置/放入会话中。

【讨论】:

  • 感谢您的提示,我唯一缺少的是保存会话数据,例如 Session::save()
  • 欢迎 :-) 顺便说一句,我认为您需要阅读 documentation,如果您对 PHP 中的会话感到困惑,那么您应该阅读 PHP manual
  • 是的,我查看了文档,但没有说明 save() 方法。
  • 这是因为 end user 不需要这样做,我们不需要启动或停止它,这是框架的责任,我们只需要告诉我们要使用哪个驱动程序。
  • 我说的是保存方法不是 Session::start()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多