我想知道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
。