xiaohuilam/searching

Laravel 顶级搜索功能

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

README

Laravel 顶级搜索功能

Build Status

Install

请使用 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

Configuration

声明模型

修改 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

所以请为了保证 js 能正常加载, 确认你的顶级模板会在 </body> 前 (stack 只有 laravel5.2+ 支持)

@stack('script')

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

@yield('seaching-js')

权限检查

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

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

Demo

演示地址 searching-demo.sina.casa

demo.png