kevinpijning/laravel-searchable

为 Laravel 提供简单的表格搜索功能

v1.0 2017-05-04 08:38 UTC

This package is auto-updated.

Last update: 2024-09-23 21:03:56 UTC


README

此包允许您通过可搜索特性轻松在模型中搜索。

设置

Composer

通过 Composer 引入此包

{
    "require": {
        "kevinpijning/laravel-searchable": "dev-master"
    }
}

$ composer update

将包添加到应用的服务提供者中 config/app.php

'providers' => [

    App\Providers\RouteServiceProvider::class,

    /*
     * Third Party Service Providers...
     */
     KevinPijning\LaravelSearchable\LaravelSearchableServiceProvider::class,
],

发布视图

php artisan vendor:publish

使用方法

在您的 Eloquent 模型中内部使用 Searchable 特性。定义 $searchable 数组(见以下示例代码)。

use KevinPijning\LaravelSearchable\Searchable;

class User extends Model implements AuthenticatableContract, CanResetPasswordContract 
{
	use Authenticatable, CanResetPassword, Searchable;
	...

	public $searchable = ['id',
	                    'name',
	                    'email',
	                    'created_at',
	                    'updated_at'];
	                    
	...
}

Searchable 特性为模型添加了 Searchable 范围,因此您可以使用它与 paginate 一起使用。

Blade 扩展

提供了一个 blade 扩展,您可以使用 @searchableform。

@searchableform

这将向您的页面添加一个搜索表单。

完整示例

路由

Route::get('users', ['as' => 'users.index', 'uses' => 'HomeController@index']);

控制器

use App\User;

public function index()
{
    $users = User::searchable()->paginate(10);
    
    return view('user.index')->withUsers($users);
}

视图

包含分页

@searchableform

@foreach($users as $user)
	{{ $user->name }}
@endforeach

{!! $users->appends(\Request::except('page'))->render() !!}