重定向后不显示Phalconphp flash SESSION消息

时间:2014-08-11 18:04:49

标签: php phalcon flash-message

我有一个准备好的AccessControll插件,用于检查资源和操作的访问权限,所以当我在插件中设置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/');                      
}

有人能说出我做错了吗?

2 个答案:

答案 0 :(得分:1)

在你的控制器中放

$this->view->disable();

$this->redirect();

这会有所帮助。对我来说这也是意料之外的事情;)

答案 1 :(得分:0)

我为此做了一个解决方案:

<?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在重定向时不会停止脚本,因此它可以在重定向之前呈现一些数据。

我认为禁用视图并不是一个很好的清洁解决方案:)