1

CakePHP2.0.2に問題があります。「プロファイルの編集」アクションを作成したいと思います。これが私のコントローラーのアクションです:

public function edit_profile() {
    if ($this->request->is('get')) {
        $this->request->data = $this->User->findById($this->Auth->user('id'));
    } else {
        if ($this->User->save($this->request->data)) {
            $this->Session->setFlash(__('Your profile has been updated'));
        }
    }
}

そして、これが私の見解です:

<h2>Edit Profile</h2>
<?php
    echo $this->Form->create('User');
    echo $this->Form->input('id', array('type' => 'hidden'));
    echo $this->Form->input('first_name');
    echo $this->Form->input('last_name');
    echo $this->Form->input('email');
    echo $this->Form->end('Save Profile');
?>

しかし、フォームを送信しても何も起こらないようです。成功メッセージが表示されず、エラーメッセージも表示されません。を補完するためにelseステートメントを配置するとif ($this->User->save($this->request->data))、そのコードブロックが実行され、Userモデルデータが保存されないことを示します。

どこが間違っているのですか?

4

1 に答える 1

1

ユーザーが保存されていない場合は、elseステートメントの$ this->User->validationErrorsを確認してください。私の賭けは、フォームにないフィールドに対して失敗する追加の検証ルールが定義されていることです。

于 2011-11-04T14:23:50.617 に答える