1

我想知道DEFAULT在 CakePHP 中执行更新操作时如何将字段重置为值(在 MySQL 结构中设置的值)。就像DEFAULT在 SQL 中使用关键字一样:

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 回答