wicool/laravel-filters

一个简化Laravel中Eloquent查询的Laravel包

dev-master 2020-01-20 15:23 UTC

This package is auto-updated.

Last update: 2024-09-21 01:24:22 UTC


README

  • 安装
composer require wicool/laravel-filters

如何使用

  • 模型 app/Models/User.php
<?php

namespace App\Models\User;

use Illuminate\Database\Eloquent\Model;
use Wicool\LaraFilter\LaraFilterTrait;

class User extends Model
{
    use LaraFilterTrait;

    /**
     * set string fields for filtering
     * @var array
     */
    protected $likeFilterFields = ['name', 'email', 'phone'];

    /**
     * set boolean fields for filtering
     * @var array
     */
    protected $boolFilterFields = ['status'];
}
  • 控制器 app/Http/Controllers/UserController.php
你只需要在控制器作用域的过滤器中通过请求传递参数。
<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Http\Request;

class UsersController extends Controller
{
	public function index(Request $request)
	{
		$users = User->filter($request->all())->get();
		
		return $users;
	}
}
  • 返回的结果可能如下
/users?name=Fulaninho&email=fulaninho@email.com?phone=999999999&status=true

SELECT * FROM users WHERE name = 'Fulaninho' AND email = 'fulaninho@email.com' AND status = true