ac-developers / eloquent-search
为Eloquent提供的一个简单搜索包。
v1.1
2018-07-23 12:28 UTC
Requires
- php: >=7.0
- illuminate/config: ~5.6
- illuminate/support: ~5.6
This package is auto-updated.
Last update: 2024-09-23 00:04:54 UTC
README
一次性在所有eloquent模型中搜索关键词的简单方法。
注意:此包不支持任何搜索驱动程序,如ElasticSearch或Agolia
1. 安装
推荐使用composer安装eloquent search。
运行
composer require ac-developers/eloquent-search
2. 使用
在您的eloquent模型中实现EloquentSearchInterface
接口,并使用EloquentSearchTrait
,这将要求您实现一个searchColumns
方法,该方法应返回您想要在模型中搜索的列的数组。
class Article implements EloquentSearchInterface
{
use EloquentSearchTrait;
/**
* Return an array of all the columns to search through.
*
* @return array
*/
public function searchColumns():array
{
return ['title', 'body', 'summary];
}
}
然后在您的控制器中,您将使用EloquentSearch
类来查找您想要的东西。该类接受5个参数,但最重要的是第一个参数,即您想要搜索的keyword
,然后是第二个参数,即您想要搜索的所有eloquent模型
类的数组。
class SearchController extends Controller
{
/**
* @param Request $request
* @return \Illuminate\Contracts\View\Factory|\Illuminate\Support\HtmlString|\Illuminate\View\View
*/
public function __invoke(Request $request)
{
$result = EloquentSearch::search($request->get('q'),[
Article::class, Users:class, Blog::class
]);
}
}
EloquentSearch
类将合并并返回使用Illuminate\Pagination\LengthAwarePaginator
类搜索到的所有模型的分页集合。
3. 安全漏洞
如果您在Laravel表单处理器中发现安全漏洞,请通过anitchec.dev@gmail.com向Anitche Chisom发送电子邮件。所有安全漏洞都将得到及时解决。
4. 许可证
Eloquent Search是开源软件,许可协议为MIT。