appslabke / laravel-easy-search
简化版的 Laravel 搜索
v0.3.2
2021-02-05 06:10 UTC
Requires
- php: ^7.1|8.0
- doctrine/dbal: ^2.8
Requires (Dev)
- orchestra/testbench: ^4.0
README
请在这里填写您的描述。尽量限制在一两段以内。可以考虑添加一个小示例。
安装
您可以通过 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)。请参阅 许可文件 了解更多信息。