EC-CUBEではデータベースのデータを取得するためにレポジトリと言われるクラスを利用します。コントローラやサービスからはレポジトリの利用が簡単ですが、よくあるのがtwigテンプレート上で商品やカテゴリのデータを取得したいというケースです。
コントローラから渡すのが基本ですが、大変な時はtwig上で取得することも可能です。実際EC-CUBE上でも何箇所か利用されています。
EC-CUBE3系の場合
コンテナに登録してあるレポジトリを呼び出すことでfindByなどのメソッドを利用できます。メソッドを呼び出すときもドットでつなぎます。
{% set Categories = app[‘eccube.repository.category’].findBy({‘Parent’ : 1}) %}
EC-CUBE4系の場合
4系ではEC-CUBE側でレポジトリ取得用の関数が用意されています。
{% set Categories = repository(‘Eccube\\Entity\\Category’).findBy({‘Parent’ : 1}); %}
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。