ThinkPHP6搜索器的使用
我们在做多条件搜索的时候,可以使用传统的数组方式,今天给大家介绍另外一种,就是ThinkPHP6搜索器。
一、了解搜索器的定义
我们依然先看看手册中关于搜索器的说明。
搜索器的作用是用于封装字段(或者搜索标识)的查询条件表达式,一个搜索器对应一个特殊的方法(该方法必须是 public 类型),方法命名规范为:
search FieldName Attr
FieldName 为数据表字段的驼峰转换,搜索器仅在调用 withSearch 方法的时候触发。
二、建立搜索条件
如何使用搜索器?我们结合实例来讲解。

我们有三个搜索条件分别是:goods_cate_id(分类筛选)、goods_status(状态筛选)、goods_name(关键字筛选)。
我们先建立三个搜索方法:
public function searchGoodsCateIdAttr($query, $value)
{
$query->where('goods_cate_id','in', $value);
}
public function searchGoodsStatusAttr($query, $value)
{
$query->where('goods_status','=', $value);
}
public function searchGoodsNameAttr($query, $value)
{
$query->where('goods_name','like', '%'.$value.'%');
}要特别注意,搜索方法的命名,我们必须严格按照官方手册中的要求定义。比如说我们数据表搜索字段为goods_cate_id,那么在定义方法的时候如下都是错误的:
1、public function searchGoodsCateId($query, $value),少Attr。
2、public function searchGoodsCateIDAttr($query, $value),驼峰写法错误。
3、public function searchGoodsCateAttr($query, $value),少Id驼峰写法错误。
4、private function searchGoodsCateIdAttr($query, $value),必须是public。
三、触发搜索
搜索器只有在调用 withSearch 方法的时候触发。
$goodsData=Goods::name('goods')->withSearch(['goods_cate_id','goods_status','goods_name'],[
'goods_cate_id'=>$cateChilerenId,
'goods_status'=>$goods_status,
'goods_name'=>$goods_name
])->paginate(10);另外,搜索器除了可以做搜索,同时也可以做排序功能,在这里就不再举例。
在调试的时候,我们还可以打印下sql语句,如果没有我们想要的结果,我们可以直接分析sql语句。
echo Goods::getLastSql();
以上就是关于ThinkPHP6搜索器的使用讲解,那么在做多条件搜索的时候,中意哪个就用哪个,也可以根据自己情况自行选择。
Atas ialah kandungan terperinci ThinkPHP6搜索器的使用. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Alat AI Hot
Undress AI Tool
Gambar buka pakaian secara percuma
Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik
AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.
Clothoff.io
Penyingkiran pakaian AI
Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!
Artikel Panas
Alat panas
Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma
SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan
Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa
Dreamweaver CS6
Alat pembangunan web visual
SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

