目标:收集一些基本的预注册信息以获取正确的视图,并管理其他一些细节。
问题:我似乎无法将任何东西传递给预期的方法;如果我什么都不通过,则else
条件评估并发生重定向。但是,如果$preReg
通过了,无论它包含什么,我都无法摆脱这个错误:
无效用户错误:请求的地址
'/myAppName/users/registerUser/userType%26amp%3B7%26amp%3B3%26amp%3B1%26amp%3B5%26amp%3B%26amp%3B%26amp%3B'
在这个服务器上没找到。
这是初始方法:
public function register() {
if ($this->request->is('post')) {
if ($this->request->url == "users/register") {
$this->redirect("registerUser/".urlencode(implode("&",$this->request->data('Registration'))));
}
}
// various other logic
}
这应该将一些完全不敏感但有用的信息传递给同一控制器的另一个方法:
public function registerUser($preReg = null) {
if ($preReg) {
$data = explode("&",urldecode($preReg));
$this->view($preReg['UserType']);
$groups = $this->User->Group->find('all', array('conditions' => array("name =".strtolower(substr($preReg['UserType'], -4)))));
$this->set(compact($groups, $data));
} else {
$this->Session->setFlash("A few details are required before registration can begin. Please fill out the form below.");
$this->redirect("register");
}
}
就目前而言,这个视图就是这么简单:
<h1>THIS IS HOW I KNOW I GOT HERE</h1>
<?php pr($this->request);?>
我很想了解为什么会发生这种情况以及我做错了什么,尤其是在我的想法方面。任何人?