【问题标题】:cakephp $this->redirect not working in functioncakephp $this->redirect 在函数中不起作用
【发布时间】:2015-11-19 19:11:15
【问题描述】:

我是 cake 新手,我正在尝试让函数在保存事件后重定向.. 它适用于其他代码,例如用户,但不在事件一中..

该功能确实保存了事件,它只是不会重定向或使用 SETFLASH

这是我的事件控制器添加功能的代码:

public function add() {
        if ($this->request->is('post')) {
            $this->Event->create();
            if ($this->Event->save($this->request->data)) {
                $this->Session->setFlash(__('The event has been saved'));
                $this->redirect(array('action' => 'eventmanage'));
            } else {
                $this->Session->setFlash(__('The event could not be saved. Please, contact the administrator.'));
            }
        }
    }

任何帮助将非常感谢!

【问题讨论】:

  • 最可能的原因是您的应用程序在发送重定向标头之前输出了一些数据。如果您的文件包含 utf-8 BOM 等,请检查您的 <?php 标记之前或 ?> 结束标记之后是否有空格(您应该在仅 php 的文件中删除这些)。您可以通过检查 firebug 或 Chrome webinspector 中的响应来检查这一点
  • 谢谢,如果您想要整个<?php ?> 是问题所在,您可以将其发布为答案。非常感谢!!
  • 我将其发布为答案,很高兴我能提供帮助!

标签: cakephp cakephp-2.3


【解决方案1】:

最可能的原因是您的应用程序在发送重定向标头之前输出了一些数据。

检查您的<?php 标记之前或?> 结束标记之后是否有空格(您应该在纯php 文件中删除这些),或者您的文件是否包含utf-8 BOM 等。

您可以通过检查 firebug 或 Chrome webinspector 中的响应来检查这一点

【讨论】:

  • 谢谢,这节省了我几个小时!
【解决方案2】:

我只是想添加评论,但还不能。

如果您想知道哪个文件正在输出阻止重定向的数据,您必须非常彻底。

在我的情况下,就像我在 MODEL 中放入我想要重定向的视图(不是很明显找到)的评论(html 评论)一样无辜。 这个没有被重定向的空白页可以很简单,就像在<?php ?> 之前的换行符空格 都很难找到,并且两者都会阻止重定向。

如果您遇到此问题,希望我的提示对您有所帮助。

【讨论】:

    【解决方案3】:

    在过滤功能之前使用这个

     header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); // // HTTP/1.1
        header("Pragma: no-cache");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-13
      • 1970-01-01
      • 1970-01-01
      • 2016-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多