我有一个postgres表,其中有一些“默认”字段,如date_created,它会自动接收current_timestamp作为默认值。F3 ORM添加新记录省略一些字段
或从数据库中定义的序列获取其值的ID字段。
什么是(如果可能的话)告诉ORM模块在生成INSERT语句时不包含这两个字段的语法?
我有一个postgres表,其中有一些“默认”字段,如date_created,它会自动接收current_timestamp作为默认值。F3 ORM添加新记录省略一些字段
或从数据库中定义的序列获取其值的ID字段。
什么是(如果可能的话)告诉ORM模块在生成INSERT语句时不包含这两个字段的语法?
您可以使用函数作为第二个参数来删除字段:
$this->copyfrom('POST',function($val) {
unset($val['ID']);
unset($val['date_created']);
return $val
});
或从POST阵列只复制允许字段:
$this->copyfrom('POST',function($val) {
return array_intersect_key($val, array_flip(array('name','age')));
});
假设您使用HTML表单向表中添加新记录,请按照以下步骤操作;
创建一个功能类似于下面
public function add() {
$this->copyFrom ('POST');
$this->save();
}
创建一个模型的字段将表单链接到此功能的路径
这些字段被用于更新/删除,从而不能从表格中删除;但是我看到你来自哪里,我想我可以在插入的情况下从POST数组中删除它们。 – Didiergm