$this->;重定向显示Cakephp中的空白页


$this->redirect display blank page in Cakephp

我的代码是:

public function join_membership() 
{
    $this->layout = 'colorbox';
    $membership_id = $this->Cookie->read('membership_id');
    $membership =  $this->Membership->find('first', array('conditions'=>array('Membership.id'=>$membership_id)));
    $this->set('membership',$membership); 
    if($this->request->is('post'))
    {
        if($this->JoinMembership->save($this->request->data['JoinMembership']))
        {
            $this->redirect(array('action' => 'member_login'));
        }
    }
}

这段代码将数据正确地保存在数据库中,但之后它会显示空白页,不会重定向到给定的函数。提前感谢。。。。

如果有人无法判断空白/输出在哪里(就像我一样),请将这个小块放在$this->redirect调用之前:

$file = '';
$line = '';
if (headers_sent($file, $line)) {
    die('Output in ' . $file . ' at line ' . $line);
}

它将停止控制器的操作,并打印出空白/输出所在的确切文件和行。

在if条件中尝试使用以下代码。

$this->redirect(array('controller' => 'Controller_Name', 'action' => 'member_login'));

您也可以尝试将某些内容打印到您使用的if condition中。还可以使用其他部分,并将某些内容打印到else part中。在调试模式2中检查它。

1)member_login操作是否与join_membership位于同一控制器中?如果否,则将Controller=>"Some_Controller"键值对添加到数组中。

2) 如果一个不起作用,检查If条件是否像一样起作用

    if($this->JoinMembership->save($this->request->data['JoinMembership']))
            {
                debug("in");exit();
                $this->redirect(array('action' => 'member_login'));
            }
        }

如果if条件返回true,您应该看到"in"消息。

请注意,您可以使用

$this->redirect("action_name");
$this->redirect("/controller_name/action_name");