为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 中的数字范围交叉搜索

Laravel 中的数字范围交叉搜索

PHP
精慕HU 2023-03-04 16:57:15
我有来自和到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:抓住


查看完整回答
反对 回复 2023-03-04
  • 1 回答
  • 0 关注
  • 163 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号