【问题标题】:how to reference a session variable within a file outside of Controller, Model or View?如何在控制器、模型或视图之外的文件中引用会话变量?
【发布时间】:2015-11-23 08:35:03
【问题描述】:

我在控制器内设置了一个session 变量:

$this->session->set("navig_param",$livc_code);

现在我想测试该会话变量在控制器域、模型域和视图域之外的 php 文件中是否为空。事实上,这个文件位于一个名为 lib 的特定文件夹中,与控制器、模型和视图处于同一级别。那么如何测试这个 php 文件中的 session 变量呢?

【问题讨论】:

    标签: phalcon


    【解决方案1】:

    您还可以通过

    访问您的会话数据(静态)
    $session = Phalcon\Di::getDefault()->get('session');
    $navigParam = $session->get('navig_param');
    

    或单线:

    $navigParam = Phalcon\Di::getDefault()->get('session')->get('navig_param');
    

    参考:phalcon static DI

    【讨论】:

      【解决方案2】:
      $di=\Phalcon\DI::getDefault();
      $session=$di->getSession();
      if($session->has("navig_param"))
      {
          $navig_param=$session->get("navig_param");
          //do something with it like flash it:
          $di->getFlash()->success('navig_param is: '.$navig_param);
      
      }
      

      【讨论】:

      • 当我们谈论phalcon会话变量时闪烁是什么意思?
      • Flash,在 Phalcon 的上下文中,不是指视频播放器,它指的是一种服务,当你想告诉用户某事时,它可以很容易地向浏览器输出消息。 docs.phalconphp.com/en/latest/reference/flash.html 它是一个有用的调试工具,很像 JavaScript 中的 alert。但是你需要从你的视图中调用$this->flash->output(); 来输出它的内容,通常放在你的index.phtml 文件中。它保留了一个集合,即一个数组,包含您希望在它们堆积时闪烁的所有消息。
      • 在屏幕截图中,Phalcon 的 INVO 演示应用程序有两个对 flash 的调用:docs.phalconphp.com/en/latest/_images/invo-2.png 一个是红色的错误消息,另一个是蓝色的通知消息。
      • 另外值得注意的是,正如该链接顶部提到的,有两个用于使用闪存的适配器。有flash direct和flash session。 “直接输出传递给 flasher 的消息” vs “将消息暂时存储在会话中,然后可以在下一个请求中打印消息”。使用哪个取决于您的应用程序的工作方式。不过,我更喜欢 Flash 会话,因为它可以在重定向之间保持数据活动,例如在应用 Post/Redirect/Get 技术以防止在用户重新加载其页面时重复提交数据。
      【解决方案3】:

      由于会话是一项服务,您只需要访问 DI 容器:

      $navigParam = $di->get('session')->get('navig_param');
      

      您也可以随时使用$_SESSION super global:

      $navigParam = $_SESSION['navig_param'];
      

      要获取$di,您可以使用:$di = DI::getDefault();

      【讨论】:

      • 如何声明(创建)这个$di
      猜你喜欢
      • 1970-01-01
      • 2015-06-25
      • 1970-01-01
      • 2011-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-01
      • 2012-08-15
      相关资源
      最近更新 更多