【问题标题】:CakePHP 2.6 flash messages not showingCakePHP 2.6 flash 消息未显示
【发布时间】:2017-02-07 11:01:05
【问题描述】:

基于来自 JobsController 的 jsonresponse() 函数中的一个条件,我想注销用户并将他们发送到登录页面,并显示 Flash 消息无效用户。

jsonresponse($data)

if($data['status'] == '0'){
    $this->Session->setFlash(__(INVALID_USERS_CREDENTIALS),'default', array('class' => 'error-flash-msg'));
        return $this->redirect($this->Auth->logout());
}

现在它正在重定向到登录页面,但没有显示 Flash 消息。

登录布局

 <div style="padding-left:12%">
        <?php echo $this->Session->flash(); ?>
    </div>

    <div class="loginbox">
        <?php echo $this->fetch('content');?>
    </div>
</body>

这里的问题是什么,当我进入登录页面并输入无效凭据时,它会显示闪烁消息。但是在上述情况下有什么问题......! 任何帮助深表感谢。谢谢。

【问题讨论】:

  • 您能否在您的view 上向我们展示debug($_SESSION) 的结果
  • 什么也没显示..!
  • 但在重定向之前,如果我在控制器中调试($_SESSION),它会在控制器中显示消息数据

标签: php authentication cakephp cakephp-2.0 flash-message


【解决方案1】:

您必须在设置会话闪烁消息之前注销,因为logout() 会破坏会话内容

if($data['status'] == '0'){
    $this->Auth->logout()
    $this->Session->setFlash(__(INVALID_USERS_CREDENTIALS),'default', array('class' => 'error-flash-msg'));
    return $this->redirect($this->Auth->redirectUrl());
}

或者,保持重定向网址不变:

if($data['status'] == '0'){
    $redirectUrl = $this->Auth->logout()
    $this->Session->setFlash(__(INVALID_USERS_CREDENTIALS),'default', array('class' => 'error-flash-msg'));
    return $this->redirect($redirectUrl);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-29
    • 1970-01-01
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    相关资源
    最近更新 更多