【PHP】where和whereOr一起复杂查询示例

在ThinkPHP 5 中,where 和 whereOr 方法可以一起使用以实现复杂的查询条件。以下是一个示例:

// 接收的参数
$param = $this->request->param();

// 实例化
$query = new UserModel();

// 关联表
$query->with(['collect' => function($collect_query) use ($user_id) {
    $collect_query->field('id,user_id');
    $collect_query->where('user_id', user_id);
}]);

// 查询条件
$query->where(['status' => 1])

// 可筛选逗号分割的
$query->where("FIND_IN_SET({$user_id},parent_ids)")

// 价格区间最小值
if(isset($param['min_money']) && is_numeric($param['min_money'])){
    $query->where(function ($query) use ($param) {
        $query->where('price_min', '>=', $param['min_money'])->orWhere('price_max', '>=', $param['min_money']);
    });
}

// 价格区间最大值
if(isset($param['max_money']) && is_numeric($param['max_money'])){
    $query->where(function ($query) use ($param) {
        $query->where('price_min', '<', $param['max_money'])->orWhere('price_max', '<', $param['max_money']);
    });
}

// 查询结果
$list = $query->field(TaskModel::HALLLIST)
    ->order($sort)
    ->select();

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-07 08:10:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-07 08:10:06       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-07 08:10:06       82 阅读
  4. Python语言-面向对象

    2024-01-07 08:10:06       91 阅读

热门阅读

  1. SVN迁移至GitLab,并附带历史提交记录

    2024-01-07 08:10:06       56 阅读
  2. ts字面量类型

    2024-01-07 08:10:06       56 阅读
  3. 完美的异步处理数据训练神经网络框架

    2024-01-07 08:10:06       52 阅读
  4. HTML中网页缩放配置mete-viewport

    2024-01-07 08:10:06       60 阅读
  5. Eureka工作原理详解

    2024-01-07 08:10:06       64 阅读
  6. 第28关 k8s监控实战之Prometheus(三)

    2024-01-07 08:10:06       67 阅读
  7. 解决2023新版Edge浏览器页面加载不出来问题

    2024-01-07 08:10:06       68 阅读
  8. initrd(4) - Linux man page initrd(4) - Linux 手册页

    2024-01-07 08:10:06       47 阅读
  9. 53、Flink 的Broadcast State 模式介绍及示例

    2024-01-07 08:10:06       45 阅读