php flash SESSION消息在重定向后不显示


Phalconphp flash SESSION messages after redirect doesnt show

我有一个准备好的accesscontrol插件来检查对资源和动作的访问,所以当我在插件中设置flash消息,然后重定向到登录页面时,消息不显示。

我在访问控制插件行:

if(!$role || !$moduleAcl || !$moduleAcl->isAllowed($role,$controller,$action)){
      $this->flash->warning('Nemáte oprávnění na provedení této akce.');
      if(!$moduleAcl->isAllowed($role, 'index', 'index')){
            $auth = 'Core'Auth::logout();
      }
      else {
           return $this->response->redirect($module.'/');
      }
}

在基本控制器中有一行:

if(!$identity)
{          
   return $this->response->redirect('manager/auth/');                      
}

谁能告诉我我做错了什么?

在控制器中输入

$this->view->disable();

之前
$this->redirect();

会有帮助的。

我做了一个解决方案:

<?php
namespace Core'Http;
/**
 * Description of Response
 *
 * @author softdream
 */
class Response extends 'Phalcon'Http'Response {
    //put your code here
    public function redirect($locationPath = null, $baseUrl = null, $statusCode = null) {
        if($statusCode){
            $this->setStatusHeader($code);
        }
        if(substr($locationPath, 0,1) === '/'){
            $locationPath = substr($locationPath, 1);
        }
        header("Location: ".$baseUrl.'/'.$locationPath);
        exit;
    }
    protected function setStatusHeader($code){
        header("HTTP/1.0 ".$code);
    }

}

这将解决重定向后显示flash消息的所有问题,问题是phalcon在重定向时不会停止脚本,所以它可以在重定向之前呈现一些数据。

我认为禁用视图不是一个好的和清洁的解决方案,如何做到这一点:)