使用eloquent更新批量日期

时间:2016-05-13 11:12:50

标签: php laravel laravel-5 eloquent laravel-5.2

如何使用 +1周期间对多个$interval = CarbonInterval::week(); // 1 week interval, that needs to fit into below query Comment::where('id', '>', 10)->update('publish_date', ...); 记录'发布日期进行批量更新?所需结果的说明:

html

2 个答案:

答案 0 :(得分:2)

您可以使用DB::raw()在数据库中执行任意代码 - 请记住,它可能无法移植到其他数据库引擎。

以下内容应该在 MySQL 和支持 DATE_ADD 功能的其他引擎中完成:

Comment::where('id', '>', 10)->update(['publish_date' => DB::raw('DATE_ADD("publish_date", INTERVAL 1 WEEK)')]);

答案 1 :(得分:2)

根据文档,您可以这样做:

App\Models\Comment::where('id', '>', 10)->update([ 'publish_date' => Carbon\Carbon::parse(DB::raw("`publish_date`"))->addWeeks(1) ]);

根据这个:

https://laracasts.com/discuss/channels/eloquent/mass-updating-table-to-set-value-of-column-to-value-of-another-column

基本更新的Laravel文档:

https://laravel.com/docs/5.2/eloquent#basic-updates

加法和减法的碳文档:

http://carbon.nesbot.com/docs/#api-addsub