thinkphp6 搜索功能实现
一,thinkphp6搜索功能实现
1创建模型(例如User模型)
模型类函数的命名规范:searchFieldNameAttr,FieldName根据自己的需要随意命名。例如下面的searchNameAttr。
<?php
namespace app\model;
use think\Model;
class User extends Model
{
public function searchNameAttr($query, $value, $data)
{
//name字段的模糊查询
$query->where('name','like', '%' . $value . '%');
}
public function searchCreateTimeAttr($query, $value, $data)
{
//添加时间字段的限制条件
$query->whereBetweenTime('create_time', $value[0], $value[1]);
}
}2控制器
User::withSearch(['name','create_time'], [ 'name' => 'think', 'create_time' => ['2018-8-1','2018-8-5'], 'status' => 1 ]) ->select();
User::withSearch(['name','create_time'], [ 'name'=>'think', 'create_time'=>['2018-8-1','2018-8-5'], 'status'=>1 ]) ->select();
注解:User::withSearch是使用thinkphp6的搜索器触发方法,['name','create_time']是上面User模型类的searchNameAttr和searchCreateTimeAttr函数,['name'=>'think','create_time' =>['2018-8-1','2018-8-5'],status'=>1]是参数。

