Search code examples
postgresqlfat-free-framework

F3 ORM add new record omitting some fields


I have a postgres table in which I have some "defaulted" fields like date_created which automatically receives a current_timestamp as default.

or the ID field which gets it's value from a sequence defined in the database.

What would be (if possible) the syntax to tell the ORM module to not include these two fields when generating an INSERT statement ?


Solution

  • You can use a function as 2nd parameter to remove the fields:

    $this->copyfrom('POST',function($val) {
        unset($val['ID']);
        unset($val['date_created']);
        return $val
    });
    

    or to only copy allowed fields from the POST array:

    $this->copyfrom('POST',function($val) {
        return array_intersect_key($val, array_flip(array('name','age')));
    });