Sylius上に構築された私のウェブサイトのホームページに検索ボックスを追加する方法を教えてください。Sylius上に構築されたウェブサイトのホームページに検索ボックスを追加
私はSyliusSearchBundleを使用しようとしましたが、データが非常に不足しているようで、サンプル設定の設定でエラーが発生します。
ご協力いただき、ありがとうございます。
Sylius上に構築された私のウェブサイトのホームページに検索ボックスを追加する方法を教えてください。Sylius上に構築されたウェブサイトのホームページに検索ボックスを追加
私はSyliusSearchBundleを使用しようとしましたが、データが非常に不足しているようで、サンプル設定の設定でエラーが発生します。
ご協力いただき、ありがとうございます。
免責事項 以下の手順は、私が書いている時点で動作します。 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.twig
をResources
ディレクトリにコピーしました。 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>
、ここで私たちは:)
を行く、私はあなたが説明したように、検索ボックスを実装しようとしましたが、私は、製品を検索する場合:このような何かを追加しますすべての製品と私は検索ボックスで検索している特定の製品ではありません。 – Sirius
ありがとう、私はProductPriceRangeがすぐに機能したことに気付きましたが、製品名が一致するためにはもう少しコードを追加する必要があります。 https://github.com/mheki/sylius-search-demo/commit/8fb6a98私は基本的にLakionバンドルからSearchControllerをコピーし、SearchTypeフォームタイプを使用しました。 – mheki
ありがとうそれはうまく動作します。今私はそれをajaxでオートコンプリートにしようとします。 – Sirius