Laravel删除或更新不起作用

时间:2015-04-02 18:50:56

标签: php mysql laravel-4

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

我希望在密码过期时删除或更新表格的值。小于time()函数。

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

我想首先更新表格' deleted_at'获取所有数据仍然在数据库中。

那我怎么能这样做呢,

如果我执行删除查询:

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

它不起作用......

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

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

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

我建议您使用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]);

答案 1 :(得分:1)

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

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

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