Sylius: Как вводить (запрашивать) аргументы в пользовательском ProductRepository?

Я хочу переопределить метод createByTaxonPaginator (), чтобы метод indexByTaxon () возвращал отсортированные результаты. Этот новый метод должен использовать Request для получения типа Get-Parameter. Для заказа результатов поиска я нашел услугу и переопредел ее следующим образом:

sylius_search.repository: class: ShopBundle\Entity\SearchIndexRepository arguments: ['@doctrine.orm.entity_manager', '@sylius.repository.product', '@request_stack'] 

может быть, это не хорошая практика, я не знаю. Но это работает … К сожалению, я не нашел определения сервиса для sylius.repository.product, чтобы посмотреть на требуемые аргументы.

в моей конфигурации у меня есть следующее:

 sylius_product: classes: product: model: ShopBundle\Entity\Product # My Own Entity controller: Sylius\Bundle\CoreBundle\Controller\ProductController repository: ShopBundle\Entity\ProductRepository # is there an option for injecting arguments? form: default: ShopBundle\Form\Type\ProductType translation: model: ShopBundle\Entity\ProductTranslation form: default: ShopBundle\Form\Type\ProductTranslationType 

есть ли вариант для ввода args, который я не знал? Здесь Repo, который расширяет значение по умолчанию и перегружает метод createByTaxonPaginator ()

  <?php namespace ShopBundle\Entity; use Sylius\Bundle\CoreBundle\Doctrine\ORM\ProductRepository as BaseProductRepository; use Sylius\Component\Core\Model\TaxonInterface; class ProductRepository extends BaseProductRepository { /** * Create paginator for products categorized under given taxon. * Modified: Sorting of Taxon listing added * * @param TaxonInterface $taxon * @param array $criteria * * @return \Pagerfanta\Pagerfanta */ public function createByTaxonPaginator(TaxonInterface $taxon, array $criteria = array()) { // Here i want to have the Request $request arg.. $queryBuilder = $this->getCollectionQueryBuilder(); $queryBuilder ->innerJoin('product.taxons', 'taxon') ->andWhere($queryBuilder->expr()->orX( 'taxon = :taxon', ':left < taxon.left AND taxon.right < :right' )) ->setParameter('taxon', $taxon) ->setParameter('left', $taxon->getLeft()) ->setParameter('right', $taxon->getRight()) ->orderBy('translation.name') // ... to get this dynamic ; $this->applyCriteria($queryBuilder, $criteria); return $this->getPaginator($queryBuilder); } }