xiaohuilam / searching
Laravel 顶级搜索功能
v2.2.5
2020-06-01 16:46 UTC
Requires
- php: >7.0.0
- laravel/framework: >=5.0
Requires (Dev)
- orchestra/testbench: ~3.0
- squizlabs/php_codesniffer: 3.*
README
Laravel 顶级搜索功能
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
注释)
- getSearchableCategoryName()
- getSearchableColumns()
- getSearchableShortcuts()
- getSearchableCategoryUrl()
- getSearchableUrl()
模板引入
在你的导航条中,加入 @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` 时候表示可以搜索 }