У меня есть пользовательский контроллер и модель пользователя. Эта модель и связанная таблица базы данных используются для аутентификации, и, естественно, есть поле пароля.
В моем действии edit
, когда я звоню $this->data
, помещается хешированный пароль в поле моего пароля в моем представлении edit
. Естественно, мне не нужно поле пароля с 40-символьным значением, которое затем будет повторно хешировано при сохранении.
Мое действие выглядит так:
function edit($id) {
$this->User->id = $id;
if (empty($this->data)) {
$this->data = $this->User->read();
}
else {
if ($this->User->save($this->data)) {
$this->Session->setFlash('User has been updated.');
$this->redirect(array('action' => 'view', $this->User->id));
}
}
}
И мой взгляд выглядит так:
<h2>Edit User</h2>
<?php
echo $this->Form->create('User', array('action' => 'edit'));
echo $this->Form->input('username');
echo $this->Form->input('password');
echo $this->Form->input('first_name');
echo $this->Form->input('last_name');
echo $this->Form->input('email');
echo $this->Form->end('Save User');
?>
Как получить форму для редактирования своей учетной записи (имя пользователя и т. Д.), Которая не обновляет пароль, если оставить его пустым, но обновляет его, если пользователь вводит новый пароль в поле пароля?