timedoor / filter
查询 filter timedoor
v1.0.2
2021-12-23 06:36 UTC
This package is auto-updated.
Last update: 2024-09-23 12:51:45 UTC
README
安装
$ composer require timedoor/filter
使用
$ php artisan make:filter {name}
$ php artisan make:filter UserFilter // example
此命令将在 app/Http/Filter 内创建新文件,文件名取决于模型名称
之后,您需要在模型中使用 filter 特性
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Timedoor\Filter\FilterTrait;
class Foo extends Model
{
use FilterTrait;
}
默认情况下,此特性将根据模型名称执行相应的 filter 类,例如,如果您使用 User 模型并创建 UserFilter,则无需在模型中指定 filter 类。
您可以通过设置 $filterClass 属性来指定要使用的 filter
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Timedoor\Filter\FilterTrait;
use App\Http\Filter\OtherFilter;
class Foo extends Model
{
use FilterTrait;
protected $filterClass = OtherFilter::class;
}
现在您可以使用 filter 方法进行数据过滤
<?php
namespace App\Http\Controllers;
use App\Models\Foo;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class AdminController extends Controller
{
public function index()
{
$foo = Foo::filter()->get();
}
}
您还可以将 $request 参数传递给 filter 方法,但这不是必需的