蜡虫 / search-repository
laravel的抽象仓库类,用于处理表格的过滤和搜索
0.9.12
2019-12-02 17:22 UTC
Requires
- laravel/framework: >=5.7
This package is auto-updated.
Last update: 2024-09-05 00:37:20 UTC
README
说明
为您的模型(例如User)创建一个特定的仓库,并扩展SearchRepository。在您的类中,您应该定义可过滤和可搜索的属性,然后您就可以开始使用了。
use Waxwink\SearchRepository\SearchRepository; class UserSearchRepository extends SearchRepository { protected $searchable_attributes = [ 'name', 'last_name', 'cellphone', ]; protected $filterable_attributes = [ 'birth_date', 'gender', 'name', 'last_name', 'cellphone', 'email', 'created_at' ]; public function __construct() { $this->query = App\User::query(); } }
创建搜索仓库类后,在使用SearchTrait的情况下,可以在控制器中使用它,如下所示:
use Waxwink\SearchRepository\Concerns\SearchTrait; use Illuminate\Http\Request; class UserController { use SearchTrait; public function index(Request $request, UserSearchRepository $userSearchRepository) { $users = $this->filterAndSearch($request, $userSearchRepository)->paginate(); // ... } }
请求体
请求体应包含要过滤的字段,如下所示
{
"gender":["m"],
"created_at":"2019-01-01",
"birth_date":["1999-01-01", ">"],
"name":["joe", "like"]
}
搜索参数
搜索参数应包含搜索关键词,如下
app/users?search=jack