cakephp $ this-> redirect在函数中不起作用

时间:2013-02-28 22:25:48

标签: cakephp cakephp-2.3

我是蛋糕的新手,我正在尝试在保存事件后让功能重定向..它适用于其他代码,例如用户,但不在事件中......

功能可以保存事件,它只是重定向或使用SETFLASH

以下是我的事件控制器add funciton的代码:

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.'));
            }
        }
    }

任何帮助都会非常感谢!

3 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:0)

我只是想添加评论,但还没有。

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

在我的案例中,我作为评论(html评论)显然是无用的,我在 MODEL 中放入了我想要重定向的视图(不那么明显可以找到)。 这个未重定向的空白页面可能就像换行符空间一样简单,就在<?php ?>非常难以找到之前,两者都会阻止重定向。

如果您遇到此问题,希望我的提示可以帮助您。

答案 2 :(得分:0)

在过滤功能之前使用此功能

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