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 方法,但这不是必需的

谢谢