【问题标题】:My Eloquent doenst select the correct time data, pls help me understand我的 Eloquent 确实选择了正确的时间数据,请帮助我理解
【发布时间】:2023-02-24 15:17:39
【问题描述】:

我目前正在制作这个队列网络,所以我想选择最长的总队列时间。我能够为每个类别选择最长的排队时间,但不知何故,当我想检索最长的总排队时间时,我的模型没有选择正确的数据。

控制器选择排队时间

这部分需要整体最长的排队时间

$longestQ = queueModel::max('wait_time');

这部分每个类别需要最长的排队时间

$longestQ1 = queueModel::where('category',$categories[0]->QName)->whereDate('created_at','=',now())->max('wait_time');

这是总排队时间的结果

"7:27" // app\Http\Controllers\SpvController.php:606

而这是1类最长排队时间的结果,应该是整体最长的

"36:59" // app\Http\Controllers\SpvController.php:929

任何人都可以解释这个假人可以理解的方式吗?

如果您需要更多部分代码,我很乐意提供。提前致谢

上下文图片

我试图将列内容从字符串转换为时间但仍然不起作用, 我也试过使用一些查询生成器,但仍然给出与雄辩的相同的结果

【问题讨论】:

  • wait_time 是字符串吗?
  • 这就是我计算 wait_time prnt.sc/REBiWz2ZuwVs 的方法。我想它被转换为字符串。

标签: php laravel eloquent


【解决方案1】:

它将返回表中所有行的 wait_time 的最大值,而不仅仅是当天的行。要选择当天最长的总排队时间,请使用 whereDate 更新您的查询以按当天过滤:

$longestQ = queueModel::whereDate('created_at', '=', now())
    ->max('wait_time');

如果 wait_time 存储为字符串,您可能需要使用 attribute casting 将其转换为数字格式。

【讨论】:

    猜你喜欢
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多