gpt4 book ai didi

php - 如何自定义 Laravel whereBetween 子句使上限不受限制?

转载 作者:行者123 更新时间:2023-11-29 01:27:38 26 4
gpt4 key购买 nike

我一直在使用 Eloquent 查询构建器来开发 Laravel。我有一种情况,我正在根据搜索查询过滤记录。我有一个整数字段,我想为其过滤范围内的数据。例如,用户可以选择任何可用范围; 0-1515-3030 及以上。为此,我发现查询构建器的 whereBetween() 子句非常有用。但是当我想选择 30 及以上 时,最后一个选项对我来说变得很困难。如果有人能帮我解决这个问题,我将不胜感激

->whereBetween('time_taken', [$lower-limit,$uper_limt])

适用于所有情况。我不想为这种情况多写一行,我可以在其中使用简单的 where 子句

->where('time_taken','>=',$uper_limt)

最佳答案

这里实际的解决方案是只选择适当的 SQL 条件(我在这里使用三元运算符以使其更紧凑):

$query = App\Operation::query();

(empty($upper_limit)) ? $query->where('time_taken','>=', $lower_limit)
: $query->whereBetween('time_taken', [$lower_limit, $upper_limit]);

$results = $query->get();

当然,只有一行会很好:

$results = App\Operation::whereBetween('time_taken', [$lower_limit, $upper_limit])->get();

但在这种情况下这是不可能的,除非您想扩展 Laravel 查询生成器并修改它处理作为值传递的范围内的空参数的方式。


编写简洁明了的代码是我们所有人都努力实现的目标,但并非总能实现一线解决方案。所以我的建议是停止专注于(我有时自己做的事情)这样的事情,因为在某些情况下,这是一个失败的原因,最终只会浪费时间。

关于php - 如何自定义 Laravel whereBetween 子句使上限不受限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34135058/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com