Menu

7.5. 代码封装

代码封装

前面的的章节我们完成了商品列表的各项搜索功能,但是我们发现商品列表控制器十分臃肿,里面有大量的代码用于构建 Elasticsearch 的查询,为了让代码布局更合理,同时提高复用性,接下来我们要对 Elasticsearch 的查询做一个简单的封装。

1. 创建查询构造器

我们目前的查询还比较单一,没有必要写一个像 Laravel Query Builder 那种十分灵活的查询构造器,因此只需要做一些简单的封装即可。

首先我们创建一个 ProductSearchBuilder 类:

$ mkdir -p app/SearchBuilders
$ touch app/SearchBuilders/ProductSearchBuilder.php

app/SearchBuilders/ProductSearchBuilder.php

<?php
namespace App\SearchBuilders;

use App\Models\Category;

class ProductSearchBuilder
{
    // 初始化查询
    protected $params = [
        'index' => 'products',
        'type'  => '_doc',
        'body'  => [
            'query' => [
                'bool' => [
                    'filte...

本文章首发在 Laravel China 社区

为了保证课程的高品质,我们需要对课程进行收费。付费后 才能观看剩余内容。 购买

上一篇 下一篇
讨论数量: 5

simplewater
学到了学到了,大佬 NB
4 个点赞 | 1 个回复 | 分享 | 课程版本 5.5
halweg
这里为什么可以不引用 CommonProductsController 命名空间呢?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
Flourishing
qujsh
刻意练习,每日精进。
0
点赞
163
浏览
5
讨论

作者
leo