heseya / laravel-searchable
Eloquent 模型搜索特性
2.0.0
2022-03-14 10:36 UTC
Requires
- php: >=7.3
- illuminate/database: >=7.0
Requires (Dev)
- pestphp/pest: ^1.21
This package is auto-updated.
Last update: 2024-09-14 16:34:45 UTC
README
🔍 Eloquent 模型搜索特性。
安装
$ composer require heseya/laravel-searchables
如何使用它?
class User extends Model { use HasCriteria; protected $criteria = [ 'id', // default criterion 'email' => Equals::class, 'name' => Like::class, 'description' => Custom::class, ]; }
class Controller { function index(Request $request) { User::searchByCriteria([ 'email' => 'example@example.com', 'name' => 'John' ])->get(); // you can extend query User::searchByCriteria($request->all()) ->where('public', true) ->get(); } }
可用条件
- 等于
- 类似
自定义条件
final class CustomCriterion extends Criterion { public function query(Builder $query): Builder { // do whatever you want return $query; } }
在模型中更改默认条件
class User extends Model { protected function getDefaultCriterion(): string { return Equals::class; } }
测试
要运行测试,请从项目文件夹运行以下命令。
$ composer test
许可证
该软件包在 MIT 许可证下发布。有关详细信息,请参阅LICENSE文件。