1

CakePHP 2.1のモデルコールバック関数内で既存のモデルデータを使用しようとしましたが、機能させることができません。私がやっていることは、beforeValidate()コールバックでユーザーの役割を取得し、それが空かどうかを確認することです。はいの場合、設定します。通常、私はこのようにしますが、レコードの最初の作成では、かなりうまく機能します。

if (empty($this->data[$this->alias]['role']))
    $this->data[$this->alias]['role'] = 'user';

問題は、既存のレコード(ユーザー)が更新されるたびに、ロールが再設定されることです。

質問:では、投稿データではなく、レコードデータにフィールドがすでに設定されているかどうかを確認するにはどうすればよいですか( POSTデータのみが含まれてroleいるようです)。$this->data[$this->alias]

4

2 に答える 2

0

試す:

if (empty($this->data[$this->alias]['role']) && empty($this->role)) {
   $this->data[$this->alias]['role'] = 'user';
}
于 2012-10-10T10:33:57.177 に答える