【问题标题】:Allowing user input once per minute允许用户每分钟输入一次
【发布时间】:2015-01-03 10:39:31
【问题描述】:

我无法让它工作。

问题是用户每分钟只能创建一次评论。就这么简单……

$checkLastComment = Comment::where('user_id', '=', 1)
        ->where('created_at', '<', 'CURDATE() + INTERVAL 1 MINUTE')->count();

【问题讨论】:

  • 您是否收到错误消息?请向我们提供更多信息。也许您必须将其设为 whereRaw('created_at &lt; CURDATE() + INTERVAL 1 MINUTE'),因为 laravel 可能会添加引号,因此 mysql 不会执行该操作。

标签: mysql laravel laravel-4 eloquent query-builder


【解决方案1】:

你应该在这里使用:

$checkLastComment = Comment::where('user_id', '=', $id)
        ->where('created_at', '>=', 'DATE_SUB(NOW(), INTERVAL 1 MINUTE)')->first();

if ($checkLastComment) {
  // user not allowed to add new comment
}

【讨论】:

    【解决方案2】:

    您的代码中有 3 个问题:

    1. 你需要大于&gt;,不小于&lt;的算子
    2. 您需要原始条件
    3. 你不能使用curdate(),因为它的时间部分总是00:00:00

    这就是你想要的:

    $notAllowedToComment = Comment::where('user_id', '=', 1)
        ->where('created_at', '>', DB::raw('now() - INTERVAL 1 MINUTE'))->count();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-27
      • 2015-07-14
      • 2014-02-11
      • 1970-01-01
      • 1970-01-01
      • 2014-08-19
      • 2015-03-12
      • 2019-11-28
      相关资源
      最近更新 更多