$ this->重定向在Cakephp中显示空白页面

时间:2012-08-20 06:08:15

标签: php cakephp cakephp-2.0

我的代码是:

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

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

3 个答案:

答案 0 :(得分:5)

如果有人在告诉他们的空白/输出在哪里(就像我做的那样),请在$this->redirect电话前放置这个小块:

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

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

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:1)

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");