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-CUBE4系プラグイン