ThinkPHP6新手教程:如何使用搜索引擎
在做多条件搜索时,可以使用传统的搜索方式。今天给大家介绍另外一个,就是ThinkPHP6研究。
1。了解研究员的定义
首先我们看一下书中对研究员的定义。
搜索器的任务是绑定字段请求(或搜索信号)的状态表示。查找器匹配私有方法(该方法必须是公共类型)。该方法的命名约定为:
FieldName Search Attr
FieldName 是数据表字段的驼峰转换,只有在调用 withSearch 方法时才会调用搜索器。
2。设置搜索条件
如何使用搜索引擎?让我们用一个例子来解释一下。
我们有三个搜索条件: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,则指定方法时,以下内容将为 false:
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。
3。搜索触发器
搜索器仅在调用 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搜索引擎的使用说明。当您使用多个条件进行搜索时,您可以使用任何您想要的条件,也可以根据您的情况进行选择。
作者:王学勤
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。