tp5 传参闭包查询+tp5中的where与whereor怎么同时使用

2023-02-17 16:49:39 浏览数 (1)

本案例实现了,单字段多搜索词模糊匹配查询和多字段同个搜索词模糊匹配查询,或的关系

在thinkPHP模型查询中,一般有两种方式:数组方式和闭包方式,相对于数组方式只能定义查询条件,闭包方式可以支持更多的连贯操作,包括排序,数量限制等。

在thinkPHP闭包查询中通常使用use进行参数传递

普通闭包查询:

items=ItemModel::all(function( query){

带参数的闭包查询:

items=ItemModel::all(function( query)use(

query->where(‘type’,

})

tp5中的where与whereor同时使用一:

data = db(‘table’)->where(function(

$query->where(‘key1’, value)->whereor(‘key1’,value1);

})->where(‘key2’=>value2,’key3’=>value3)->field(‘key4’)->find();

生成的sql语句为:

find key4 FROM table WHERE  (  key1 = ‘value’ OR key1 = ‘value1’ ) and  key2 = ‘value2’

and ‘key3’ = ‘value3’;

二:

data = db(‘table’)->where(function(

$query->where(‘key1’, value)->whereor(‘key1’,value1);

})->whereor(function($query){

$query->where(‘key2’=>value2->whereor(‘key3’=>value3))

})->field(‘key4’)->find();

find ‘key4’ FROM table WHERE  (  key1 = value OR key1 = value1 )

OR (  key2 = ‘value2’ OR key3 = ‘value3’ )

实际场景

tp5 使用数组查询时,一个字段有多个搜索词时的写法

场景一  一个字段多个搜索错

$option‘question’=[

‘like’,’%’.’乐刷’.’%’,

‘like’,’%’.’666′.’%’,

‘or’

];  //测试可行,

分词查询(多条件模糊查询)在讯宝实现了

场景二—–多个字段同时匹配查询或语法 whereor闭包查询,云笔记项目搜索接口有案例 list1=Db::name(‘user_biji’)->page($``$query)use( keyword){ query->whereor(‘title’,’like’,”%

未经允许不得转载:肥猫博客 » tp5 传参闭包查询 tp5中的where与whereor怎么同时使用

0 人点赞