CakePHP 2.6 Flash消息未显示

时间:2017-02-07 11:01:06

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

基于JobsController中jsonresponse()函数的条件,我想注销用户并将其发送到登录页面,并带有flash消息无效用户。

jsonresponse($数据)

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>

这里有什么问题,当我转到登录页面并输入无效凭据时,它会显示我的flash消息。但是上面的问题是什么问题......! 任何帮助深表感谢。感谢。

1 个答案:

答案 0 :(得分:1)

您必须在设置会话Flash消息之前注销,因为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);
}