2017-06-20 71 views
0

我有一個postgres表,其中有一些「默認」字段,如date_created,它會自動接收current_timestamp作爲默認值。F3 ORM添加新記錄省略一些字段

或從數據庫中定義的序列獲取其值的ID字段。

什麼是(如果可能的話)告訴ORM模塊在生成INSERT語句時不包含這兩個字段的語法?

回答

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

假設您使用HTML表單向表中添加新記錄,請按照以下步驟操作;

  1. 在形式,忽略這些「默認」字段,即只添加要提交
  2. 創建一個功能類似於下面

    public function add() { 
        $this->copyFrom ('POST'); 
        $this->save(); 
    } 
    
  3. 創建一個模型的字段將表單鏈接到此功能的路徑

+0

這些字段被用於更新/刪除,從而不能從表格中刪除;但是我看到你來自哪裏,我想我可以在插入的情況下從POST數組中刪除它們。 – Didiergm