我有来自和到2 列的记录 用户可以通过选择或输入从ant到值来过滤结果如何使用 Laravel 正确实现这个东西。我现在拥有的很简单$query->where("field_to", '<=', $field_to);
$query->where("field_from", '>=', $field_from);但这将不起作用,例如,如果数据库中的值是 10 和 100,但用户输入的是 50 和 200。我需要某种交叉检查。或者我过度设计了什么?
1 回答

万千封印
TA贡献1891条经验 获得超3个赞
你必须使用这样的东西:
$field_to = 50;
$field_from = 200;
$query->where(function ($query) use ($field_from) {
$query->where('field_from', '<=', $field_from)
->where('field_to', '>=', $field_from);
})
->orWhere(function ($query) use ($field_to) {
$query->where('field_from', '<=', $field_to)
->where('field_to', '>=', $field_to);
});
这将抓住你的场景。例如,如果数据库中的记录是 50 和 100,并且用户输入这些值:
55 和 70:抓住
70 和 150:接住
150 和 200:未捕获
20 和 30:未捕获
20 和 75:抓住
- 1 回答
- 0 关注
- 163 浏览
添加回答
举报
0/150
提交
取消