首页 文章

CakePHP 2.6 Flash消息未显示

提问于
浏览
1

根据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消息 .

Loginlayout

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

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

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

1 回答

  • 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());
    }
    

    或者,保持重定向url,就像你一样:

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

相关问题