sufian / laravel-query-filter
一个基于模型属性过滤查询的Laravel包。
v0.1.0
2024-06-07 03:15 UTC
Requires
- php: >=7.4
README
一个基于模型属性过滤Eloquent查询的Laravel包。
安装
步骤 1: 安装包
您可以通过Composer安装此包
composer require sufian/laravel-query-filter
用法
步骤 1: 使用可过滤特性
将可过滤特性添加到您想要过滤的Eloquent模型中
namespace App\Models; use Illuminate\Database\Eloquent\Model; use Sufian\QueryFilter\Filterable; class User extends Model { use Filterable; }
步骤 2: 创建过滤类
要生成新的过滤类,请使用make:filter Artisan命令,后跟您要创建的类的名称。例如,要为User模型创建一个过滤类,请运行
php artisan make:filter YourModel Name
示例
php artisan make:filter User
或者,手动在每个模型的App\Filters命名空间中创建过滤类
示例 UserFilter 类
namespace App\Filters; use Sufian\QueryFilter\BaseFilter; use Illuminate\Database\Eloquent\Builder; class UserFilter extends BaseFilter { protected $filters = ['name', 'email']; public function name(Builder $query, $value) { $query->where('name', 'like', '%' . $value . '%'); } public function email(Builder $query, $value) { $query->where('email', 'like', '%' . $value . '%'); } }
步骤 3: 在控制器中使用过滤
现在您可以在控制器中使用过滤方法
UserController
namespace App\Http\Controllers; use App\Models\User; use Illuminate\Http\Request; class UserController extends Controller { public function index(Request $request) { $users = User::filter()->get(); return response()->json($users); } }
贡献
感谢您考虑为Laravel Query Filter包做出贡献!请阅读贡献指南以获取有关如何贡献的详细信息。
安全漏洞
如果您在此Laravel Query Filter包中发现安全漏洞,请发送电子邮件至sufian at rubel.nstu27@gmail.com。所有安全漏洞都将得到及时处理。
许可证
此包是开源软件,许可协议为MIT。