企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
thinkphp 5 闭包函数使用详解 举个例子: ~~~ $this->where(function ($query) { $query->where('id', 1)->whereor('id', 2); })->find(); ~~~ 上述栗子就是一个简单的where查询的闭包函数使用,使用匿名函数添加复杂条件查询, 最后执行的sql是: ~~~ // 加入上述代码写在user模型里,则执行的sql为: select * from user where (id = 1 or id = 2); ~~~ 其实闭包函数也不会复杂到哪去,无非带参数不带参数而已。 上面的例子加强一下: ~~~ $this->where(function ($query) use ($id1, $id2) { $query->where('id', $id1)->whereor('id', $id2); })->find(); ~~~ 这也就是thinkphp 5 里怎么使用闭包查询传参数的方法,使用use 传入参数。 在thinkphp5模型的查询中,一般有两种方式:数组方式和闭包方式,相对于数组方式只能定义查询条件,闭包方式可以支持更多的连贯操作,包括排序、数量限制等。 那么我们在使用闭包方式要怎么传入参数呢?具体代码如下: 普通闭包查询: ~~~ $items = ItemModel::all(function($query){$query->order('sort', 'asc');}); ~~~ 带参数的闭包查询: ~~~ $items = ItemModel::all(function($query)use($type){ $query->where('type',$type)->order('sort', 'asc'); } ); ~~~ 通过代码我们可以发现,在ThinkPHP5闭包查询中传参使用的是use传递。