ac-developers/eloquent-search

为Eloquent提供的一个简单搜索包。

v1.1 2018-07-23 12:28 UTC

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