karabinse / eloquent-searchable
轻松搜索 eloquent 模型和它们的关联
1.2.0
2024-09-06 07:54 UTC
Requires
- php: ^8.2
- illuminate/contracts: ^10.0||^11.0
- spatie/laravel-package-tools: ^1.16
- spatie/laravel-query-builder: ^5.0|^6.0
Requires (Dev)
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.0.0||^8.22.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
README
安装
您可以通过 composer 安装此包
composer require karabinse/eloquent-searchable
使用方法
添加特质并添加可搜索的列。
use Karabin\Searchable\Concerns\IsSearchable; class User extends Authenticatable { use HasFactory, HasRoles, IsSearchable, Notifiable; protected $searchable = [ 'name', 'email', 'posts.title' ];
该包还包含一个自定义的 TermSearchFitler,可与 Laravel Query Builder 一起使用。
use Karabin\Searchable\Filters\TermSearchFilter; class UserController extends Controller { public function index(Request $request) { $users = QueryBuilder::for(User::class) ->allowedFilters([ AllowedFilter::custom('search', new TermSearchFilter), ]) ->paginate($request->query('limit', 10)); return Inertia::render('User/Index', [ 'users' => UserData::collect($users), ]); }
测试
composer test
鸣谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。