0

Cakephp でユーザー データを更新する際に問題が発生しました。

フォームを送信すると、$this->data に次のデータがあります。

Array
(
    [User] => Array
        (
            [first_name] => Dusan
            [last_name] => Stojanovic
            [native_language_id] => 25
        )
)

しかし、私がそれを更新しようとすると:

$this->User->id = $id;
$this->User->save($this->data)

検証のため、モデルは保存されません。$this->data 配列に存在しないフィールド (無効なパスワード、電子メールなど) を検証しようとします。$this->data 配列に存在するフィールドのみを更新できるようにするにはどうすればよいですか?

4

2 に答える 2

1

これを適切に行うには、検証ルールのonオプションをcreateonly および/または に設定requireする必要がありfalseます。

簡単に修正するには、$fieldlist保存するフィールドを指定します。

$this->User->save($this->data, true, array('first_name', 'last_name', 'native_language_id'));
于 2011-06-07T08:27:29.130 に答える
0

あなたはこれを行うことができます:

$this->data['User']['id'] = $id

['id'] のため、cakephp は配列をデータセットを更新するデータとして認識し、新しいデータセットを作成しません。

于 2011-06-07T08:54:33.847 に答える