smoked / filter-manager-bundle
产品列表过滤器包(symfony flex版本)
Requires
- php: ^7.0|^7.1
- jms/serializer-bundle: ^2.0
- ongr/elasticsearch-bundle: ~5.0
- symfony/asset: ^3.4|^4.0
- symfony/browser-kit: ^3.4|^4.0
- symfony/config: ^3.4|^4.0
- symfony/css-selector: ^3.4|^4.0
- symfony/dependency-injection: ^3.4|^4.0
- symfony/event-dispatcher: ^3.4|^4.0
- symfony/framework-bundle: ^3.4|^4.0
- symfony/http-foundation: ^3.4|^4.0
- symfony/http-kernel: ^3.4|^4.0
- symfony/routing: ^3.4|^4.0
- symfony/translation: ^3.4|^4.0
- symfony/twig-bundle: ^3.4|^4.0
- twig/twig: ^1.35|^2.4.4
Requires (Dev)
- monolog/monolog: ~1.0
- phpunit/phpunit: ~5.0
- satooshi/php-coveralls: ~1.0
- squizlabs/php_codesniffer: ~2.4
- 2.1.x-dev
- dev-master / 2.1.x-dev
- v2.1.2
- v2.1.1
- v2.1.0
- 2.0.x-dev
- v2.0.1
- v2.0.0
- 1.0.x-dev
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- v1.0.0-alpha.1
- v0.5.x-dev
- v0.5.10
- v0.5.9
- v0.5.8
- v0.5.7
- v0.5.6
- v0.5.5
- v0.5.4
- v0.5.3
- v0.5.2
- v0.5.1
- v0.5.0
- v0.4.2
- v0.4.1
- v0.4.0
- v0.3.0
- v0.2.1
- v0.2.0
- v0.1.0
- dev-symfony-flex
- dev-support-symfony-flex
This package is not auto-updated.
Last update: 2024-09-18 05:47:02 UTC
README
过滤器管理器用于列出文档。它将常用过滤选项和UI元素与Elasticsearch存储库之间的连接起来。值得注意的是,过滤对列表有影响的一切,它可以包括
- 特定字段值对象的过滤(颜色、国家等)
- 范围过滤(价格范围、从点距离等)
- 文档列表分页。分页会改变列表的表示,因此它被认为是过滤器,并像过滤器一样处理。
- 文档列表排序。与分页相同 - 在此包中,排序是过滤器。
- 任何影响(不一定是直接可见的)结果列表的自定义因素。它可以排除、增强、修改某些结果,收集某些指标或任何您可以想象的操作。
如果您需要任何帮助,请通过stack overflow询问ONGR支持,这是首选和推荐的方式。
文档
要查看该包的在线文档,请点击此处。所有文档页面都位于Resources/doc/目录中。
安装
步骤 1:安装FilterManager包
使用Composer安装FilterManager包。
# You can require any version you need, check the latest stable to make sure you are using the newest version. $ composer require ongr/filter-manager-bundle "~2.0"
请注意,过滤器管理器需要Elasticsearch包,如何安装和配置它的指南可以在这里找到。
步骤 2:启用FilterManager包
在您的AppKernel中启用Filter Manager包
// app/AppKernel.php public function registerBundles() { $bundles = [ // ... new ONGR\ElasticsearchBundle\ONGRElasticsearchBundle(), new ONGR\FilterManagerBundle\ONGRFilterManagerBundle(), new \JMS\SerializerBundle\JMSSerializerBundle(), ]; // ... }
步骤 3:为管理器添加配置
添加Elasticsearch和FilterManager包的最小配置。
# app/config/config.yml ongr_elasticsearch: managers: default: index: hosts: - 127.0.0.1:9200 index_name: products ongr_filter_manager: managers: search_list: # <- Filter manager name filters: - country repository: es.manager.default.product # <- Product document repository service to execute queries on filters: country: # <- Filter name type: choice request_field: country document_field: country
请注意,必须定义
Product文档。更多关于ElasticsearchBundle的信息可以在这里找到。
在这个特定的例子中,我们定义了一个名为search_list的单个过滤器管理器,用于从产品存储库中过滤文档,并且我们将使用名为country的过滤器来过滤文档中定义的国家。
步骤 4:使用您的新的包
FilterManagerBundle已准备好使用。当您定义过滤器管理器时,该包将根据管理器名称生成一个服务。在这种情况下,它将是ongr_filter_manager.manager.search_list。
要获取列表,获取该服务并调用handleRequest()。以下是一个控制器中的简短示例
<?php use ONGR\FilterManagerBundle\DependencyInjection\ONGRFilterManagerExtension; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; class ProductController extends Controller { /** * @param Request $request Request. * * @return Response */ public function listAction(Request $request) { $searchList = $this->get(ONGRFilterManagerExtension::getFilterManagerId('search_list')) ->handleRequest($request); $this->render( 'AppBundle:Product:list.html.twig', [ 'filters' => $searchList->getFilters(), 'products' => $searchList->getResult(), ] ); } }
有关如何使用过滤器和呈现结果的更多信息,请参阅基本主题。
故障排除
如果您在实现包时遇到任何问题或困难,请不要害怕创建一个带有错误或问题的报告。此外,ONGR组织在Stackoverflow上有标签,因此您也可以在那里询问有关所有ONGR包的问题。
许可
此包受MIT许可证的保护。请参阅包中的完整许可证LICENSE文件。