更新されていない変更フィールドをデバッグする方法についてのアイデアはありますか?作成されたフィールドは正常に動作します。cakePHP - 変更されたフィールドが更新されない
どのコードを見る必要があるか分かりませんので、教えてください。
ありがとうございます。
更新されていない変更フィールドをデバッグする方法についてのアイデアはありますか?作成されたフィールドは正常に動作します。cakePHP - 変更されたフィールドが更新されない
どのコードを見る必要があるか分かりませんので、教えてください。
ありがとうございます。
はmodified
とcreated
フィールドがDATETIME
する必要があり、彼らはまたexplained in the CakePHP book about the subjectとして、NULL
にデフォルト設定する必要がある、と述べました。
このフィールドの名前は、 'datetime'タイプで 'modified'にする必要があります。 Cakeは自動的にフィールドを更新します。あなたがチェックしたいのであれば、それを照会するか、データベースを調べるだけです。アンファム同様
手動更新クエリを使用すると、この問題が発生することもあります。フィールドは、Cake独自の関数を使用する場合にのみ更新されます。
私はModel-> save()関数を使用しています。 – AlexBrand
あなたはなかったと思う場合は、あなたのデータを保存する前に
$this->ModelName->read(NULL, $id);
を使用しなかった場合は、チェックしてみてください - ダブルそれは
あなたがフィールドに上書きされているほとんどの場合、未設定のチェック
unset($user['User']['modified']);
今、あなたはそれを保存することができます:
このようにそれを保存する前にオブジェクトのフィールドAppModel.phpでは、次のコードを書いてください。
public function beforeSave($options = array()) {
parent::beforeSave();
if (isset($this->data[$this->alias]['modified'])) {
unset($this->data[$this->alias]['modified']);
}
if (isset($this->data[$this->alias]['created'])) {
unset($this->data[$this->alias]['created']);
}
}
これはすべてのモデルで機能します。しかし、個々のモデルについてもそうすることができます。
parent::beforeSave();
を最初の行に使用しているので、これは個々のモデルに上書きすることができます。 継承のおかげです。
今日は同じ問題を持って、すべての変更は、それ以外のフィールドは触れることはありません、行われている場合modified
フィールドはのみ更新されてました。
Yeapでは、どちらもDATETIMEであり、デフォルトはNULLです。 Createdは動作しますが、$ this-> Model-> save()を編集関数で呼び出すと、変更されたフィールドは更新されません。 – AlexBrand
これらのフィールドは、おそらくフォームに再度入力してください。フォームに保存されていたり、保存されていたりすると、正しく更新されません。 – mark