karabinse/eloquent-searchable

轻松搜索 eloquent 模型和它们的关联

1.2.0 2024-09-06 07:54 UTC

This package is auto-updated.

Last update: 2024-09-06 07:54:54 UTC


README

Latest Version on Packagist GitHub Tests Action Status

安装

您可以通过 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)。有关更多信息,请参阅 许可文件