DEFAULT
CakePHP で更新アクションを実行するときに、フィールドを値 (MySQL 構造で設定されたもの) にリセットする方法を知りたいです。DEFAULT
SQL でキーワードを使用するように:
INSERT INTO items (position) VALUES (DEFAULT);
編集: create でデフォルトを使用する方法を探しているのではなく、すでに使用されているフィールドをデフォルトにリセットする方法を探しています。
DEFAULT
CakePHP で更新アクションを実行するときに、フィールドを値 (MySQL 構造で設定されたもの) にリセットする方法を知りたいです。DEFAULT
SQL でキーワードを使用するように:
INSERT INTO items (position) VALUES (DEFAULT);
編集: create でデフォルトを使用する方法を探しているのではなく、すでに使用されているフィールドをデフォルトにリセットする方法を探しています。
デフォルト値を mysql データベースに保存したい場合は、要求された配列からフォーム入力を設定解除するだけです。同じことを達成するために、次のことを試すことができます。
$item_details = $this->request->data;
unset($item_details['Item']['position']);
$this->Item->create();
$this->Item->save($item_details);
編集した質問によると、レコードの更新中にフィールドをリセットしたい場合。MySql の default() 関数を使用するだけです。
$item_details = $this->request->data;
$this->Item->id = $item_details['Item']['id'];
$this->Item->saveField('position', DboSource::expression('DEFAULT(position)'));
私自身の質問に答えるには、次のようにします。
$this->Item->saveField('position', DboSource::expression('DEFAULT(position)'));
また
$data['Item']['position'] = DboSource::expression('DEFAULT(position)');
$this->Item->save($data)
しかし、ここで失われた時間について説明します。使用できるようにするDboSource
には、以前にデータベースクエリが必要でした! そうしないと、CakePHP はエラーをスローしますClass 'DboSource' not found
。