dlimars/laravel-searchable
Composer 安装命令:
composer require dlimars/laravel-searchable
包简介
A Simple trait search for Laravel Models
README 文档
README
a simple trait to use with your Laravel Models
Installation
open terminal and run:
composer require dlimars/laravel-searchable
Configuration
just add in your models
class MyModel extends Model { use Dlimars\LaravelSearchable\Searchable; private $searchable = [ 'name' => 'LIKE', 'id' => 'MATCH', 'created_at' => 'BETWEEN' ]; }
Usage
just call search() method in model
$filters = [ 'name' => 'foo bar', 'id' => '10', 'created_at' => ['2010-01-01 00:00:00', '2015-01-01 23:59:59'] ]; $users = User::search($filters)->get(); // produces $query->where('name', 'LIKE', '%foo%') // ->where('name', 'LIKE', '%bar%') // ->where('id', '10') // ->where('created_at', '>=', '2010-01-01 00:00:00') // ->where('created_at', '<=', '2015-01-01 23:59:59') $filters = [ 'created_at' => ['2010-01-01 00:00:00', null] ]; // produces $query->where('created_at', '>=', '2010-01-01 00:00:00') $filters = [ 'created_at' => [null, '2015-01-01 23:59:59'] ]; // produces $query->where('created_at', '<=', '2015-01-01 23:59:59')
you can also use with request
$users = User::search($request()->all())->get();
Default Operators
'LIKE' // produces $query->where('field', 'LIKE', '%{$value}%') 'MATCH' // produces $query->where('field', $value) 'BETWEEN' // produces $query->where('field', '>=', $value[0]) // ->where('field', '<=', $value[1])
Custom Operators
You can create a custom scope in your models, and call as operator.
Example of class:
class Customer extends EloquentModel
{
use Searchable;
public $fillable = [
'firstname',
'lastname'
];
public $searchable = [
'id' => 'MATCH',
'name' => 'myCustomSearchByName'
]
public function scopeMyCustomSearchByName($queryBuilder, $name)
{
$name = str_slug($name, "%");
$queryBuilder->where(
\DB::raw('CONCAT(firstname, " ", lastname'),
'LIKE',
"%{$name}%"
);
}
}
and call
$filters = ['name' => 'Foo bar example'];
$customers = Customer::search($filters)->get();
dlimars/laravel-searchable 适用场景与选型建议
dlimars/laravel-searchable 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 151.27k 次下载、GitHub Stars 达 5, 最近一次更新时间为 2015 年 08 月 20 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 dlimars/laravel-searchable 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 dlimars/laravel-searchable 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 151.27k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 5
- 点击次数: 14
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2015-08-20