在使用查询生成器时有没有办法自动使用时间戳,目前我正在使用 CARBON。 这是我的代码:
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() ]
);
最佳答案
字段created_at
和update_at
是Eloquent的一部分。
您需要使用 Eloquent 而不是查询构建器来将记录插入和更新到数据库中以进行自动时间处理。 Eloquent 将为您处理 Updated_at 列的自动更新,
这就是方法,
如果您有型号名称产品,
$product = new Product();
$product->column_name = $column_value;
....
...
$product->save();
以上代码将自动在 created_at
和 updated_at
列添加时间戳。
现在使用 Eloquent 更新您的记录,例如,
$product = Product::find($id);
$product->update_column_name = $update_value;
...
...
$product->update();
这将相应地更新您的 updated_at
列值。
希望您能理解。
关于laravel - 在 Laravel 5.4 查询构建器中自动使用时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45972638/