kolirt / laravel-model-filter
此包已被弃用,不再维护。没有建议的替代包。
模型过滤器
1.0.0
2023-07-27 13:55 UTC
This package is auto-updated.
Last update: 2023-12-27 15:03:02 UTC
README
安装
$ composer require kolirt/laravel-model-filter
$ php artisan model-filter:install
在 config/model-filter.php 路径下配置配置文件。
示例
用户模型
您需要使用 Kolirt\ModelFilter\Filterable 特性
<?php namespace App\Models; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Kolirt\ModelFilter\Filterable; class User extends Authenticatable { use Notifiable, Filterable; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'name', 'email', 'password', ]; /** * The attributes that should be hidden for arrays. * * @var array */ protected $hidden = [ 'password', 'remember_token', ]; /** * The attributes that should be cast to native types. * * @var array */ protected $casts = [ 'email_verified_at' => 'datetime', ]; }
用户模型过滤器
您需要创建一个模型过滤器
<?php namespace App\Models\Filters; use Illuminate\Database\Eloquent\Builder; class UserFilter { public function q(Builder $query, $value) { $query->where('name', 'LIKE', '%' . $value . '%'); } }
控制器
<?php namespace App\Http\Controllers; use App\Models\User; use Illuminate\Http\Request; class TestController extends Controller { public function index(Request $request) { User::filter([ 'q' => 'q' ])->get(); // equal User::where('name', 'LIKE', '%q%')->get(); } }