2017-08-31 111 views
2

有什麼方法可以在使用查詢生成器時自動使用時間戳,目前我使用的是CARBON。 這裏是我的代碼:在Laravel 5.4查詢生成器中自動使用時間戳

DB::table('product_in_out')->insert(
       ['product_id'     => $product_id, 
       'warehouse_id'     => $warehouse_id, 
       'balance_before'    => Product::getProductBalanceOf($action_id, $product_id), 
       'in'       => $product_qty, 
       'out'       => '0', 
       'after_balance'    => Product::getProductBalanceOf($action_id, $product_id)+$product_qty, 
       'action'      => 'ProcurementReceipt', 
       'action_id'     => $action_id, 
       'created_by'     => auth()->user()->id, 
       'updated_by'     => auth()->user()->id, 
       'is_active'     => '1', 
       'created_at'     => \Carbon\Carbon::now(), # \Datetime() 
       'updated_at'     => \Carbon\Carbon::now(),# \Datetime() ] 

      ); 

回答

1

created_atupdate_at是雄辯的一部分。

您需要使用Eloquent而不是查詢生成器來插入記錄並將其更新到數據庫以進行自動時間處理。雄辯會爲你處理的updated_at列的自動更新,

這裏是這樣的,

如果你有型號產品,

$product = new Product(); 
$product->column_name = $column_value; 
.... 
... 
$product->save(); 

上面的代碼將在created_atupdated_at列自動添加時間戳。

現在用雄辯的更新您的記錄,如,

$product = Product::find($id); 
$product->update_column_name = $update_value; 
... 
... 
$product->update(); 

這將相應地更新您的updated_at列值。

希望你能理解。

+0

我明白了你的觀點,所以這意味着自動時間戳只能用於口才? –

+0

@MartneyAcha是的,與查詢生成器,你必須手動做 –

+0

好吧謝謝薩加爾 –

相關問題