当我为UsersController编写add()函数时出现问题。
public function add(){
if ($this->request->is('post')) {
if ($this->User->save($this->request->data)) {
$this->Session->setFlash('The new user has been saved.');
$this->redirect(array('action' => 'test'));
}
}
$this->set('title_for_layout', 'Register');
}
这是添加视图ctp。
<?php
echo $this->Form->create('User');
echo $this->Form->input('username');
echo $this->Form->input('password');
echo $this->Form->end('Save User');
?>
当我尝试访问用户/添加时,始终存在内部错误。有谁知道如何处理这个问题?感谢。
答案 0 :(得分:1)
您是否尝试过测试$this->data
而不是$this->request->is('post')
?这可能并不重要,但这通常是它的完成方式。
此外,为了保存,您最有可能(除非您手动设置用户ID)执行以下操作:
$this->User->create();
$this->User->save($this->data);
所以你的添加功能应该类似于:
public function add(){
if ($this->data) {
$this->User->create();
if ($this->User->save($this->data)) {
$this->Session->setFlash('The new user has been saved.');
$this->redirect(array('action' => 'test'));
}
}
$this->set('title_for_layout', 'Register');
}
你可能希望你的观点如下:
<?php echo $form->create('User', array('action' => 'add')); ?>
<?php echo $form->input("username", array('label' => 'Username')) ?>
<?php echo $form->input("password",array("type"=>"password", 'label' => 'password')) ?>
<?php echo $form->submit('Submit'); ?>