xiaohuilam/searching

Laravel 顶级搜索功能

v2.2.5 2020-06-01 16:46 UTC

README

Laravel 顶级搜索功能

Build Status

安装

请使用 composer 安装

composer require xiaohuilam/searching

如果你使用的是 laravel 5.5 以下版本,需要手动注册服务提供者: 打开 config/app.php,在 providers 添加如下

"providers" => [
    // ...
    // 你原先 providers 的后面加下面这一行
    Searching\Providers\SearchingServiceProvider::class,
]

发布配置文件、搜索框模板和 js

php artisan vendor:publish --tag=searching

配置

声明模型

修改 config/search.php

<?php
return [
    'models' => [
        App\Models\User::class,
        放入你的模型...
    ],
];

模型改造

打开 app/Models/User.php,按照 examples/Models/Article.php 的方式实现 Searching\Interfaces\SearchingInterface 接口,并添加如下方法(具体用途请参照 SearchingInterface 注释)

模板引入

在你的导航条中,加入 @include('layouts.search')

<ul class="nav navbar-nav">
    <li class="{{is('home', 'active')}}"><a href="{{ route('home') }}">首页</a></li>
    <!-- 原有的导航 -->
    @include('layouts.search')
</ul>

resources/views/layouts/search.blade.php 中的

@push('script')
...
@endpush

因此,请确保你的顶级模板在 </body> 之前加载 js,以便正常工作 (stack 只有 laravel5.2+ 支持)

@stack('script')

如果你使用的是 laravel 5.1 以下版本,请手动添加

@yield('seaching-js')

权限检查

打开 app/Http/Requests/SearchingRequest.php, 修改

public function authorize()
{
    return true; // 返回 `true` 时候表示可以搜索
}

演示

演示地址 searching-demo.sina.casa

demo.png