【发布时间】:2017-07-21 19:48:14
【问题描述】:
这可能看起来像一个双重帖子,但事实并非如此。 我试图查看用户是否在过去 5 分钟内发布了一个主题,我尝试了数百万个代码来检查,但不知何故我的代码总是计数 1 或更多。
这是我目前的解决方案:
public function allowedToPostTopic() {
$count = Topic::where([
['user_id', '=', $this->id],
['created_at', '>', \Carbon\Carbon::now()->subMinutes($this->role->topic_delay)]
])->count();
if ($count == 0)
return true;
return false;
}
$this->role->topic_delay = 5 我肯定知道(也用 var_dumb 测试过)
我试图在 ,因为这让我感到困惑,我尝试了很多其他方法,例如:
NOW() - INTERVAL 5 MINUTE
但这也不起作用:(
我在这里做错了什么?
【问题讨论】:
-
1 调试提示是简单地获取查询返回的主题,因此将
->count()替换为->get()您可以 dd 结果并检查行为。可能存在问题的另一个原因是 Carbon 使用的时区,而不是数据库中的 datetime 使用的时区。 -
@OmisakinOluwatobi 这就是我得到的回报 2017-07-21 20:32:16 - 2017-07-21 20:17:05(左边是主题 created_at,右边是碳日期)是的,现在的碳日期是错误的
-
我通过在 app/config.php 中填写正确的时间 zon 来解决它,对不起我的愚蠢
标签: php laravel eloquent php-carbon laravel-query-builder