Laravel删除或更新不会';不起作用


Laravel delete or update doesn't work

我有一个小问题。。。所以我有一个代码,可以从一个表中获取所有值,

当callumn'expire'小于time()函数时,我想删除或更新表的值。

我住在UTC+1时区,但还好。。。

我想首先更新表"deleted_at",以获取仍在数据库中的所有数据。

那么我该怎么做呢,

如果我执行删除查询:

$del = DB::table('event')->where('expire', '<', $time)->delete();

它不起作用。。。

请帮助我(可能通过进行UPDATE查询将deleted_at表更新为当前时间戳?

谢谢你的帮助!

问题可能是time()返回自1970年以来的秒数,而不是时间戳。(我假设你的数据库栏是)

我建议你使用Carbon(Laravel使用的日期库)

$now = Carbon::now();
$del = DB::table('event')->where('expired', '<', $now)->delete();

或软删除:

$now = Carbon::now();
$del = DB::table('event')->where('expired', '<', $now)->whereNull('deleted_at')->update(['deleted_at' => $now]);

多亏了lukasgeiter,我找到了正确的解决方案,这就是解决方案:

$del = DB::table('event')->where('expire', '<', $time)->where('deleted_at', 'IS NULL')->update(['deleted_at' => $time]);

$time变量是time();函数,因为我想要的是时间戳,而不是日期格式。