Laravel / Eloquent - 时间戳之间的15秒间隔

时间:2013-06-20 18:31:35

标签: php mysql laravel eloquent

尝试阻止用户过快发布评论,因此计划使用15秒的时间间隔。

此查询无法查看是否在过去15秒内发表了评论。我做错了什么?

表:

 id  |      comment    |     created_at      |
==============================================
 2   |   blah casd     | 2013-06-20 18:14:17 |

然而,我无法与Eloquent

合作
    //are they commenting too fast?
    $protection = DB::table('comments')
       ->where('user_id', '=', $userid)
       ->where('created_at', '<', '(NOW(), INTERVAL 15 SECOND)')
       ->get();

    if(!empty($protection)) {
         return Redirect::back()->with_message('Please wait 15 seconds between comments.', 'error'); 
    }

2 个答案:

答案 0 :(得分:13)

尝试替换

->where('created_at', '<', '(NOW(), INTERVAL 15 SECOND)')

->where('created_at', '<', DB::raw('NOW() + INTERVAL 15 SECOND)')

我希望这可以提供一些帮助。

答案 1 :(得分:3)

逗号不正确。你应该添加间隔:

NOW() + INTERVAL 15 SECOND

或减去,如果您将其更改为>比较...