我正在运行CakePHP 1.3.8稳定版,我的表单数据有问题。当我提交表单时,我能够在AppController中调试时看到$this->data
中包含的数据,但是在我的子控制器中它是空的。
这是我的AppController:
class AppController extends Controller {
var $components = array('Auth', 'Session');
function beforeFilter() {
// Data is not empty here
$this->Auth->authenticate = ClassRegistry::init('User');
$this->Auth->allow('register', 'index');
parent::beforeFilter();
}
}
这是我的UsersController:
class UsersController extends AppController {
var $name = 'Users';
function register() {
// Data empty at this point
if(!empty($this->data)) {
if($this->data['User']['password'] == $this->Auth->password($this->data['User']['password_confirm'])) {
$this->User->create();
$defaultRole = $this->User->Role->getDefaultRole();
$this->data['User']['role_id'] = $defaultRole['id'];
if($this->User->save($this->data)) {
$this->redirect(array('action' => 'index'));
}
}
}
}
}
表单将发布到/ users / register
提前致谢!
答案 0 :(得分:0)
我弄清楚问题是什么。我在我的Users模型中使用自定义散列方法,在hashPasswords函数中我没有返回$ data对象。因此,$ data数据刚被hashPasswords函数吞没,永远不会被再次看到。
感谢您的关注,如果您犯了类似的错误,我希望这会对您有所帮助!
答案 1 :(得分:0)
还要在视图或元素中查找未终止的表单标记。