EC-CUBE本体で生成しているSQL文をプラグイン側で変更したい場合は、フックポイントで受け取ったQueryBuilderを getDQLPart() や resetDQLPart() を使用して書き換えることができます。
dump($qb->getQuery()->getSQL());
一時的にフィルタを無効化してデータを取得します。
取得後はフィルタを有効に戻します。
$filters = $app['orm.em']->getFilters()->disable('soft_delete'); $results = $qb->getResult(); $filters = $app['orm.em']->getFilters()->enable('soft_delete');
フィルタは以下のファイルにて適用されています。
src/Eccube/ServiceProvider/EccubeServiceProvider.php
// filters $config = $em->getConfiguration(); $config->addFilter("soft_delete", '\Eccube\Doctrine\Filter\SoftDeleteFilter'); $config->addFilter("nostock_hidden", '\Eccube\Doctrine\Filter\NoStockHiddenFilter'); $config->addFilter("incomplete_order_status_hidden", '\Eccube\Doctrine\Filter\OrderStatusFilter'); $em->getFilters()->enable('soft_delete');