Добавить пользователя в учебник по аутентификации Cakephp
Существует проблема, когда я пишу функцию add() для UsersController.
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');
?>
Всегда есть внутренняя ошибка, когда я пытаюсь получить доступ к пользователям / добавить. Кто-нибудь знает, как бороться с этой проблемой? Благодарю.
1 ответ
Решение
Вы пробовали тестирование на $this->data
вместо $this->request->is('post')
? Это может не иметь значения, но обычно так и делается.
Кроме того, для сохранения вы, скорее всего, должны (если вы не устанавливаете userid вручную) сделать что-то вроде:
$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'); ?>