thinkphp6入门(15)-- 模型动态构建查询条件

背景

我使用thinkphp6的模型写数据库查询,有多个where条件,但是不确定是否需要添加某个where条件,怎么才能动态得生成查询

链式查询

在ThinkPHP 6中,可以使用链式查询方法来动态地构建查询条件。可以根据参数的值来决定是否添加where条件。

下面是一个示例代码,演示了如何根据参数动态地构建查询条件:

<?php  
namespace app\controller;  
  
use think\facade\Db;  
  
class Index  
{  
    public function getData($param1, $param2, $param3)  
{  
        $query = Db::name('your_table'); // 指定要查询的表名  
  
        if ($param1 !== -1) {  
            $query->where('column1', $param1); // 添加第一个查询条件  
        }  
        if ($param2 !== -1) {  
            $query->where('column2', $param2); // 添加第二个查询条件  
        }  
        if ($param3 !== -1) {  
            $query->where('column3', $param3); // 添加第三个查询条件  
        }  
  
        $result = $query->select(); // 执行查询并返回结果  
        return $result;  
    }  
}

如果是使用模型查询

<?php  
namespace app\controller;  
  
use think\Model;  
  
class Index extends Model  
{  
    public static function getData($param1, $param2, $param3)  
{  
        $query = self::order('id'); // 开始构建查询,写空where会报错,所以写一个无关紧要的order
  
        if ($param1 !== -1) {  
            $query->where('column1', $param1); // 添加第一个查询条件  
        }  
        if ($param2 !== -1) {  
            $query->where('column2', $param2); // 添加第二个查询条件  
        }  
        if ($param3 !== -1) {  
            $query->where('column3', $param3); // 添加第三个查询条件  
        }  
  
        $result = $query->select(); // 执行查询并返回结果  
        return $result;  
    }  
}

这样就可以实现按照条件查询不同类型的用户

图片

by 软件工程小施同学

猜你喜欢

转载自blog.csdn.net/u013288190/article/details/135434283