F3 ORM添加了省略某些字段的新记录

时间:2017-06-20 04:40:20

标签: postgresql fat-free-framework

我有一张postgres表,其中有一些"默认" date_created等字段,默认自动接收current_timestamp。

或ID字段,它从数据库中定义的序列中获取值。

在生成INSERT语句时,告诉ORM模块不包含这两个字段的语法是什么(如果可能)?

2 个答案:

答案 0 :(得分:2)

您可以使用函数作为第二个参数来删除字段:

$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')));
});

答案 1 :(得分:0)

假设您使用HTML表单将新记录添加到表格中,请按照以下步骤操作;

  1. 在表单中,省略这些“默认”字段,即只添加您要提交的字段
  2. 使用类似下面的函数创建模型

    public function add() {
        $this->copyFrom ( 'POST' );
        $this->save ();
    }
    
  3. 创建将表单链接到此函数的路由