Laravel 顶级搜索功能
Laravel 顶级搜索功能
PHP 开发框架
共16Star
详细介绍
Searching
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` 时候表示可以搜索
}