2017-06-26 2 views
0

Sylius上に構築された私のウェブサイトのホームページに検索ボックスを追加する方法を教えてください。Sylius上に構築されたウェブサイトのホームページに検索ボックスを追加

私はSyliusSearchBundleを使用しようとしましたが、データが非常に不足しているようで、サンプル設定の設定でエラーが発生します。

ご協力いただき、ありがとうございます。

答えて

2

免責事項 以下の手順は、私が書いている時点で動作します。 SyliusElasticSearchBundleプラグインは重い開発状態にあり、いくつかのものは今クラッシュしますが、確かに修正されます。

私はここでデモ・リポジトリを作成しました:https://github.com/mheki/sylius-search-demo

あなたがElasticSearchとSyliusElasticSearchBundleプラグインを実行している必要があります。 readmeファイルから

フォローインストール手順:https://github.com/Lakion/SyliusElasticSearchBundle

ただ、sylius devのマスター(循環依存...)

インポートバンドルの設定、ルーティングをインストールAppKernelでそれを可能にするために覚えておいてください。私はバンドルがfilter_sets設定を必要と書いている時点では

、それ以外の場合は、だから、製品名によって簡単な検索を開始する

を墜落:

:と弾性指標を移入

lakion_sylius_elastic_search: 
    filter_sets: 
     default: 
      filters: 
       name: 
        type: string 

bin/console fos:elastic:pop 

lakion_elastic_search_shop_product_indexの元のルーティングを上書きする -を使用するあなたのチャンネルコードはです。

lakion_elastic_search_shop_product_index: 
    path: /products 
    methods: [GET] 
    defaults: 
     _controller: lakion_sylius_elastic_search.controller.search:filterAction 
     _sylius: 
      template: "@LakionSyliusElasticSearch/Product/index.html.twig" 
      resource_class: "%sylius.model.product.class%" 
      filter_set: default 
    requirements: 
     slug: .+ 

オリジナル製品インデックスページは私のために失敗していたと私はそれから

{{ form_row(form.search) }} 

を削除する必要がありました。そのため、@LakionSyliusElasticSearch/Product/index.html.twigResourcesディレクトリにコピーしました。 Resources\LakionSyliusElasticSearchBundle\views\Product\index.html.twigとなりました。

最後に、フォームを作成します。たとえば、_security.html.twigというファイルをSyliusShopBundleからコピーするなどです。それはショー、

<div class="item"> 
     <form action="{{ path('lakion_elastic_search_shop_product_index') }}" method="get"> 
      <div class="ui icon input"> 
       <input type="text" placeholder="{{ 'sylius.ui.search'|trans }}..." name="filter_set[name]" /> 
       <button type="submit" class="ui button mini"> 
        <i class="search icon"></i> 
       </button> 
      </div> 
     </form> 
</div> 

、ここで私たちは:)

search on demo shop

+0

を行く、私はあなたが説明したように、検索ボックスを実装しようとしましたが、私は、製品を検索する場合:このような何かを追加しますすべての製品と私は検索ボックスで検索している特定の製品ではありません。 – Sirius

+1

ありがとう、私はProductPriceRangeがすぐに機能したことに気付きましたが、製品名が一致するためにはもう少しコードを追加する必要があります。 https://github.com/mheki/sylius-search-demo/commit/8fb6a98私は基本的にLakionバンドルからSearchControllerをコピーし、SearchTypeフォームタイプを使用しました。 – mheki

+0

ありがとうそれはうまく動作します。今私はそれをajaxでオートコンプリートにしようとします。 – Sirius

関連する問題