Флэш-сообщения CakePHP 2.6 не отображаются

Основываясь на условии в функции jsonresponse() из JobsController, я хочу вывести пользователя из системы и отправить его на страницу входа с флэш-сообщением Invalid user.

jsonresponse($data)

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

Теперь он перенаправляет на страницу входа, но флеш-сообщение не отображается.

В макете входа

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

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

what is the issue here, when I goto login page and enter invalid credentials, it show me flash message. But what is problem in above case...! Any help is much appreciated. Thanks.


person Aamir    schedule 07.02.2017    source источник
comment
можете ли вы показать нам результат debug($_SESSION) на вашем view   -  person beta-developper    schedule 07.02.2017
comment
Ничего не показывает..!   -  person Aamir    schedule 07.02.2017
comment
Но перед перенаправлением, если я отлаживаю ($_SESSION) в контроллере, он показывает данные сообщения в контроллере.   -  person Aamir    schedule 07.02.2017


Ответы (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);
}
person beta-developper    schedule 07.02.2017