appslabke/laravel-easy-search

简化版的 Laravel 搜索

v0.3.2 2021-02-05 06:10 UTC

README

Latest Version on Packagist Build Status Total Downloads

请在这里填写您的描述。尽量限制在一两段以内。可以考虑添加一个小示例。

安装

您可以通过 composer 安装此包

composer require appslabke/laravel-easy-search

用法

添加配置 vendor:publish --provider="AppsLab\LaravelEasySearch\LaravelEasySearchBaseServiceProvider" 这将添加配置文件,您可以自定义 namespace = 允许您设置过滤器和模块的命名空间,location = 允许您设置过滤器和模型的位置 autogenerate-query-builds = 这有助于自动生成查询构建,它由过滤命令用于自动生成过滤查询 queries-types = 这用于自动完成查询类型

如何添加自己的构建器。

  • 创建新的服务提供者 BuildServiceProvider
  • 在 boot 方法中添加您的构建,如下所示使用 Search Facade
Search::builds([
  NameBuild::class
])

不要忘记将您的服务提供者添加到 app.config 提供者 App\Providers\BuildServiceProvider::class,

与 Laravel Easy Search 一起工作

  • 在模型上添加搜索

  • 全局搜索

    • 这允许您搜索表中的所有列。
    • Laravel easy search 将仅使用在生产中生成的过滤条件搜索表,但在本地/开发中会报错。
    • 如果您想忽略某些列,可以在第二个参数中忽略这些列。
    ->allowedColumns(['id', 'created_at', 'updated_at'])
    • 默认情况下,全局搜索使用 search 作为查询过滤器,您可以通过添加第一个参数来替换它
    ->searchAllColumns('filter')

    请确保您检查了

将可搜索特质添加到您的模型

您现在可以使用 Laravel 可搜索的

//First make sure you extend Search facade on your controller

use AppsLab\LaravelEasySearch\Facades\Search;

class NameController extends Controller
{
    public index(){
    $results = Search::model(Model::class)
    //Allowed Collumns methods guide you to search only columns added by default if you don't add allowedColumn all solumns will be return
                ->allowedColumns(['name'])
                //Applying filter from your request
                ->applyFilter() //This will search using the filters you generated if filter is not available it will throw a class does not exist error. You can change the filter from the request by adding an array with the key as the filter and the value as the request key
                ->applyFilter(['search_name' => 'name']) This will replace the search_name with name. Name is the filter name
                //Sort by allow you to sort the result pass an array
                ->sortBy('column','ASC')
                //Do you want to add a query? yeah you can do that by building your query connect to the model
                ->buildQuery('whereHas', ['warehouse', function(Builder $query){
                        $query->where('name' , 'like', '%neo%');
                    }])
                //You can add relation addRelation as string or array
                ->addRelation('users')
                // use first to get first item on search
                ->first()

    }
}
use Searchable; 
$skeleton = new Spatie\Skeleton();
echo $skeleton->echoPhrase('Hello, Spatie!');

变更日志

请参阅 CHANGELOG 了解最近更改的详细信息。

贡献

请参阅 CONTRIBUTING 了解详细信息。

安全

如果您发现任何安全相关的问题,请通过电子邮件 developers@appslab.co.ke 而不是使用问题跟踪器。

鸣谢

支持我们

我们是一群技术专家、分析师和设计师,推动着在商业和社区中解决问题的边界,同时我们也享受乐趣。 Apps:Lab KE

Mpesa 贡献

即将推出

许可协议

MIT 许可协议 (MIT)。请参阅 许可文件 了解更多信息。