1

我的代码是:

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

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

4

3 回答 3

5

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

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

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

于 2014-09-13T05:21:49.933 回答
2

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

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

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

于 2012-08-20T06:19:14.437 回答
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");
于 2012-08-20T06:23:47.177 回答