我的代码是:
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");