EC-CUBE3でのサブクエリを使用したSQLの書き方
前提・実現したいこと
・環境
EC-CUBE:3.0.10
・条件
ユーザ名が店舗名となり店舗名はカテゴリ名とも同一になります
・カテゴリ構成(カテゴリや店舗名は例となります)
食器
┣店舗A
┗店舗B
インテリア
┣店舗A
┗店舗C
・実現したいこと
EC-CUBEにて、管理画面内の商品登録画面、商品検索画面、受注検索画面の各画面にてカテゴリを選択できる部分があるが、その部分にて該当店舗分のみを出すようにしたい。
・作成しようとしているSQLの概要
ユーザ名が店舗名のため、ユーザ情報($app['user']のName)より取得しそれを用いてカテゴリのIDを紐づけて導き出す。
店舗Aがログインした場合は
食器
┗店舗A
インテリア
┗店舗A
店舗Bがログインした場合は
食器
┗店舗B
としたい。
SELECT *
FROM dtb_category ca
WHERE ca.category_name = 店舗名
とした場合は、店舗名に合致するものしか取れないためそれに付随する親カテゴリの名前が取得できない。
親カテゴリも取得できるようにしたい。
発生している問題・エラーメッセージ
エラーは発生していないが、現状では上記の通りカテゴリ名が
子カテゴリ(店舗名)しか取得できていないため
複数の親カテゴリが存在する場合にどちらに追加しているのかが特定しづらい。
該当のソースコード
現状は、上記記載のSQLをdoctrineで書いたのみなので
src\Eccube\Form\Type\Adminの
'query_builder' => function(EntityRepository $er) use($name) {
return $er->createQueryBuilder('ca')
->where('ca.name = :name')
->setParameter('name', $name)
->orderBy('ca.rank', 'DESC');
},
試したこと、考えてみたこと
・サブクエリを使用すれば作れたりするのかなと考えてはみましたが、doctrineの経験が少なくサブクエリでの構文の知識が薄いため詰まってしまっています。
ヒント等のご教示をいただける方、よろしくお願いいたします。