Thinkphp6.0 搜索器使用方法

搜索器

搜索器的作用是用于封装字段(或者搜索标识)的查询条件表达式,一个搜索器对应一个特殊的方法(该方法必须是public类型),方法命名规范为:searchFieldNameAttr, withSearch触发搜<?phpnamespace app\admin\model;


class Books extends \app\common\Base\Model
{
    protected $name = 'books';
 
    protected $field = [
        'id',
        'title'// 标题
        'desc'// 备注
        'author'// 作者
        'class_tree_id'// 类型
        'tags'// 标签
        'cover'// 封面
        'sort'// 排序
        'status'// 状态
        'create_time'// 创建时间
        'update_time'// 更新时间
        'delete_time'// 0 未删除 >0 未删除
    ];
 
    // 搜索器
    public function searchTitleAttr($query,$value,$data)
    {
        $query->whereLike('title''%'.$value.'%');
    }

    public function searchStatusAttr($query,$value,$data)
    {
        $query->where('status'$value);
    }

    // 获取列表
    public function getList($param)
    {
        $list = $this->withSearch(array_keys($param), $param)
                    ->order('sort','desc')
                    ->order('create_time''desc')
                    ->paginate($param['limit'] ?: parent::LIMIT);
        return $list;
    }
}
posted @ 2020-04-28 14:49  今晚丶打老虎  阅读(1787)  评论(0)    收藏  举报