| 質問 > フロント機能 > 一つのブロックでカテゴリー別に商品を表示させたい |
フロント機能
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | スレッド |
|---|---|
| kagami |
投稿日時: 2021/6/11 16:00
対応状況: −−−
|
半人前 ![]() ![]() 登録日: 2021/5/25 居住地: 投稿: 19 |
一つのブロックでカテゴリー別に商品を表示させたい ▼テンプレート
[EC-CUBE] 4EC-CUBEのバージョン、新規インストールかアップデートか、等 [レンタルサーバ] さくらレンタルサーバ名 [OS] 使用しているOS名、バージョン [PHP] 使用しているPHPのバージョン [データベース] 使用しているDB名、バージョン [WEBサーバ] 使用しているWEBサーバ名、バージョン [ブラウザ] 使用しているブラウザ名、バージョン [導入プラグインの有無] あれば導入プラグインを記載 [カスタマイズの有無] あればカスタマイズ内容を記載(できるだけ具体的に) [現象] 再現手順や、どのような現象が発生しているかなど、具体的に 商品ページにてボタンクリックにてカテゴリーを選択でき、そのカテゴリーの商品を表示させるというものを作成したいと考えております。 ただいまリポジトリ関数を用いて商品情報をproduct.phpから持ってきている段階です。 リポジトリ関数を使って全ての商品情報を持ってきた方法が {% set Products = repository('Eccube\\Entity\\Product').findBy({ Status: 1 } , { update_date: 'desc' }) %} になります。 この際、カテゴリー10の商品情報を持ってくるとした場合の記述ですが、 {% set Products2 = repository('Eccube\\Entity\\Product').findBy({ ProductCategories: 10 } , { update_date: 'desc' }) %} で持ってくることができません。 正しい記述の仕方を教えていただけますか? コントローラーについては、まだ触ったことがなく、理解ができません。 |
| balisys |
投稿日時: 2023/11/25 17:57
対応状況: −−−
|
仙人 ![]() ![]() 登録日: 2020/7/5 居住地: 投稿: 603 |
Re: 一つのブロックでカテゴリー別に商品を表示させたい このような形になるのかと思われます。
※あくまで参考程度に |
| leatech |
投稿日時: 2026/2/7 18:02
対応状況: −−−
|
常連 ![]() ![]() 登録日: 2026/1/18 居住地: 福岡県福岡市博多区祇園町8-13 投稿: 50 |
Re: 一つのブロックでカテゴリー別に商品を表示させたい 既にご回答をいただいておりますので、補足程度にコメントさせていただきます。
ProductCategoriesはProductとCategoryの紐付けを管理する中間情報となっておりますので、 findBy({ ProductCategories: 10 }) のようにカテゴリIDを直接指定しても絞り込むことができません。 そのためカテゴリで商品を絞り込む場合は、 既にご回答いただいております通りIDではなくCategoryエンティティを条件に渡すか、 検索用のQueryBuilder を使って JOIN する必要があります。 また、Twigのrepository()は「とりあえずデータを取得する」際には便利ですが、 その他の絞り込み条件が増えてくるとTwig側にロジックが集中し可読性や保守性が下がってしまう可能性があります。 そのため本来であればController側で商品取得を行い、 Twig側では受け取った情報を表示するだけにする構成の方が、 後からの修正や条件追加がしやすく安定した実装となるかと思います。 |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
どうか教えて下さい!







