バージョン選択

フォーラム

メニュー

オンライン状況

76 人のユーザが現在オンラインです。 (50 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 75
Nidhiahuja もっと...

サイト内検索

質問 > フロント機能 > 一つのブロックでカテゴリー別に商品を表示させたい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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: 一つのブロックでカテゴリー別に商品を表示させたい
このような形になるのかと思われます。


{% set Category = repository("Eccube\\Entity\\Category").find(10) %}
{% 
set Products = repository("Eccube\\Entity\\Product")
.getQueryBuilderBySearchData({'category_id':Category})
.getQuery()
.getResult()
%}


※あくまで参考程度に
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側では受け取った情報を表示するだけにする構成の方が、
後からの修正や条件追加がしやすく安定した実装となるかと思います。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は142,951名です
総投稿数は113,496件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2340
5
h_tanaka
2138
6
umebius
2085
7
yuh
1905
8
mcontact
1817
9
red
1585
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
805
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18
balisys
603
19 DELIGHT 572
20
patapata
502


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.