1

DEFAULTCakePHP で更新アクションを実行するときに、フィールドを値 (MySQL 構造で設定されたもの) にリセットする方法を知りたいです。DEFAULTSQL でキーワードを使用するように:

INSERT INTO items (position) VALUES (DEFAULT);

編集: create でデフォルトを使用する方法を探しているのではなく、すでに使用されているフィールドをデフォルトにリセットする方法を探しています。

4

2 に答える 2

1

デフォルト値を 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)'));
于 2012-08-14T04:18:10.323 に答える
0

私自身の質問に答えるには、次のようにします。

$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

于 2012-08-14T09:59:55.997 に答える