【问题标题】:How to Get session values in default.ctp in cake php3如何在 cakephp 3 中的 default.ctp 中获取会话值
【发布时间】:2015-11-13 17:53:09
【问题描述】:
$this->Auth->user ( 'username' );

在控制器中工作得很好,但我想检查是否有任何用户在 default.ctp 文件中使用

$this->Auth->user ();

我怎样才能做到这一点?

【问题讨论】:

  • 最好在 App Controller 中签入,而不是 default.ctp。

标签: php variables session cakephp


【解决方案1】:

尝试:

$this->request->session()->read('Auth.User');

【讨论】:

    【解决方案2】:

    虽然可以使用 arilia 方法在视图中检查经过身份验证的用户,但您应该在控制器中执行此操作,然后将其发送到视图。一种简单的方法如下(在您的 AppController 中):

    public function beforeRender (Cake\Event\Event $event) {
        $this->set('isAuthenticatedUser', (bool) $this->Auth->user('username')) ;
        return parent::beforeRender ($event) ;
    }
    

    使用上述方法,在您的任何视图中,您都可以访问$isAuthenticatedUser 变量,告诉您用户是否已登录。

    【讨论】:

      【解决方案3】:
      $this->request->Session()->Write('sessionname' ,$value);
      $this->request->Session()->read('sessionname');
      

      $value 是我们必须在会话中写入的值,sessionname 是一个变量。

      【讨论】:

      • 你应该解释你的代码以及它为什么有用。我也觉得echo'$value';不是你想写的。
      • $value 是我们必须在会话中写入的值,而 sessionname 是一个变量。它适用于蛋糕 php 3x
      • 这不是$value的含义,而是你的PHP:echo'$value';只是回显$value,而不是变量的内容。这是基本的 PHP,与 Cake 无关
      • 哦,我知道这一点..我错误地将变量写在单人床中-----它的“$value”;
      猜你喜欢
      • 2015-07-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      相关资源
      最近更新 更多