Laravel使用MySQL日期函数选择计数(TODAY创建的行数)

时间:2014-07-25 13:47:59

标签: php datetime laravel

我希望用户每天只能创建一定数量的提交。这就是我在CakePHP中用来获取当天用户提交的提交数量并且有效的方法:

$submitted_today = $this->Submission->find('count', array(
                'conditions' => array(
                    'Submission.ip' => $_SERVER['REMOTE_ADDR'],
                    'Submission.created >= CURRENT_DATE',
                    'Submission.created < CURRENT_DATE + INTERVAL 1 DAY'
                )
            ));

这是我在Laravel中提出的:

$submitted_today = DB::table('submissions')
                    ->where('ip', '=', $_SERVER['REMOTE_ADDR'])
                    ->where('created', '>=', 'CURRENT_DATE')
                    ->where('created', '<', 'CURRENT_DATE + INTERVAL 1 DAY')
                    ->get();

但它不起作用。它出什么问题了? MySQL日期术语被解释为字符串可能有什么问题吗?


UPDATE:以下是使用whereRaw(显示)工作的代码。

$submitted_today = DB::table('submissions')
                    ->where('ip', '=', $_SERVER['REMOTE_ADDR'])
                    ->whereRaw('created >= CURRENT_DATE')
                    ->whereRaw('created < CURRENT_DATE + INTERVAL 1 DAY')
                    ->count();

1 个答案:

答案 0 :(得分:1)

尝试使用 - &gt; count()获取no check Laravel Documentation

$submitted_today = DB::table('submissions')
                    ->where('ip', '=', $_SERVER['REMOTE_ADDR'])
                    ->where('created', '>=', 'CURRENT_DATE')
                    ->where('created', '<', 'CURRENT_DATE + INTERVAL 1 DAY')
                    ->count();