ユーザーコントローラーとユーザーモデルがあります。このモデルと関連するデータベース テーブルは認証に使用され、当然パスワード フィールドがあります。
私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');
?>
ユーザーが自分のアカウント (ユーザー名など) を編集するためのフォームを作成するにはどうすればよいですか? 空白のままにするとパスワードは更新されませんが、ユーザーが新しいパスワードをパスワード フィールドに入力すると更新されます。