我的代码是:
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'));
}
}
}
此代码正确保存数据库中的数据但在此之后显示空白页面,它不会重定向到给定的函数。 提前谢谢....
答案 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");