我想知道如何在DEFAULT中执行更新操作时,将字段重置为MySQL值(MySQL结构中设置的字段)。类似于在SQL中使用DEFAULT关键字:
INSERT INTO items (position) VALUES (DEFAULT);编辑:我不是,不是在create上搜索使用默认值的方法,而是寻找一种方法,当字段已经被使用时,将其重置为默认的字段。
发布于 2012-08-14 09:59:55
要回答我自己的问题,可以这样做:
$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-14 04:18:10
如果要将表单输入的默认值保存到mysql数据库中,可以简单地将表单输入从请求的数组中取消。您可以尝试以下方法来实现相同的目标:
$item_details = $this->request->data;
unset($item_details['Item']['position']);
$this->Item->create();
$this->Item->save($item_details);根据您编辑的问题,如果要在更新记录期间重置任何字段。您只需使用MySql默认()函数即可。
$item_details = $this->request->data;
$this->Item->id = $item_details['Item']['id'];
$this->Item->saveField('position', DboSource::expression('DEFAULT(position)'));https://stackoverflow.com/questions/11943488
复制相似问题