Мне нужно переопределить поведение маршрута sylius_partial_product_latest
, чтобы иметь возможность отображать шаблон с дополнительным параметром.
Простой пример: на разных страницах мне нужно показывать от 2 до 4 товаров за раз с карусельной прокруткой 4-8 товаров. Теперь в шаблоне SyliusWebBundle:Frontend/Product:latest
у меня есть:
{{ grid(products) }}
Но мне в некоторых случаях нужно:
{{ grid(products, 2) }}
В других:
{{ grid(products, 3) }}
{# or it can be 4 or any other number #}
Теперь в шаблоне у меня есть только products
var (он обслуживается механизмом ресурсов), я могу передавать переменные в репозиторий, где я могу добавить их в свой массив products
, но это не лучший способ. Это можно сделать, просто передав переменные в запрос:
{{ render(url('sylius_partial_product_latest', {'size': 3, 'limit': 2, 'template': 'SyliusWebBundle:Frontend/Product:latest.html.twig'})) }}
Мне нужно иметь возможность передавать переменную size
в шаблон SyliusWebBundle:Frontend/Product:latest
за пределами products
.
Я пробовал переопределить ProductBundle
и _13 _... Но переопределение контроллеров с настраиваемым действием (я не хочу отменять indexAction
или showAction
) ни к чему не привело. PHP вообще не попадает в мой контроллер. Вместо этого он ударил showAction
из ResourceBundle
. И да, я переопределил маршрутизацию, чтобы указать свой контроллер.
Если я заменяю ProductController
новым маршрутом и использую его в своем шаблоне, он генерирует исключение:
Возникло исключение во время рендеринга шаблона («Контроллер» sylius.controller.product: partialAction «для URI» / partial «не вызывается.») В SyliusWebBundle: Frontend / Product: show.html.twig в строке 136 .
Когда я изменяю _controller
, чтобы указать мой контроллер стандартным образом Symfony, у меня возникает следующее исключение:
Уловимая фатальная ошибка: аргумент 1, переданный в Sylius \ Bundle \ ResourceBundle \ Controller \ ResourceController :: __ construct (), должен быть экземпляром Sylius \ Bundle \ ResourceBundle \ Controller \ Configuration, не указан, вызывается в / Users / mihail / Sites / store /vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/ControllerResolver.php в строке 77 и определен в / Users / mihail / Sites / store / vendor / sylius / sylius / src / Sylius / Bundle / ResourceBundle / Controller /ResourceController.php в строке 63