TLingC's Zone
TLingC's Zone

ThinkPHP 6 模型搜索扩展包

think-searchable



ThinkPHP 6.0 模型搜索扩展包

安装

composer require tlingc/think-searchable

使用

模型配置

在需要搜索功能的模型中引入SearchableTrait

<?php
namespace app\model;

use think\Model;
use tlingc\think\searchable\SearchableTrait;

class UserModel extends Model
{
    use SearchableTrait;

    // 可搜索字段(定义搜索器后必须在此添加)
    protected $searchable = [
        'name',
        'role_id'
    ];

    // 使用thinkphp原生搜索器方法定义搜索行为
    public function searchNameAttr($query, $value)
    {
        $query->where('name', 'like', '%' . $value . '%');
    }

    public function searchRoleIdAttr($query, $value)
    {
        $query->where('role_id', $value);
    }
    // ...
}

执行搜索

// 一般传入外部提交的搜索条件,默认排除没有提供的字段
$list = UserModel::search([
    'name' => 'name of the user'
])->select();

/*
生成sql语句:
SELECT * FROM `user` WHERE (  `name` LIKE '%name of the user%' )
*/


// 可修改searchable参数
$model = new UserModel;
$model->setSearchable(['name']);

协议

MIT

若正文中无特别说明,本文采用 CC BY-SA 4.0 协议进行许可。如需转载,请附上本文链接和本声明。
本文链接:https://tlingc.com/2021/10/thinkphp-6-model-search-package/
# #
首页      开发      ThinkPHP 6 模型搜索扩展包

推荐文章

发表评论

textsms
account_circle
email

TLingC's Zone

ThinkPHP 6 模型搜索扩展包
think-searchable ThinkPHP 6.0 模型搜索扩展包 安装 composer require tlingc/think-searchable 使用 模型配置 在需要搜索功能的模型中引入SearchableTrait: <?php name…
扫描二维码继续阅读
2021-10-04