2017-08-31 107 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

好吧谢谢萨加尔 –

相关问题