Sylius: уловимая фатальная ошибка: аргумент 1 передан в ShopBundle\Controller\HomepageController::__construct()

Я пытаюсь переопределить HomepageController:indexAction из SyliusShopBundle, чтобы передать некоторые данные в index.html.twig, но продолжает появляться исключение:

Уловимая фатальная ошибка: аргумент 1, переданный в AppBundle\Controller\CustomHomepageController::__construct(), должен быть экземпляром Symfony\Bundle\FrameworkBundle\Templating\EngineInterface, не указан, вызывается в C:\wamp3\www\acme\app\cache \dev\appDevDebugProjectContainer.php в строке 1619 и определен

AppBundle/Controller/CustomHomepageController.php:

<?php
    namespace AppBundle\Controller;

    use Symfony\Bundle\FrameworkBundle\Templating\EngineInterface;
    use Symfony\Component\HttpFoundation\Request;
    use Sylius\Bundle\ShopBundle\Controller\HomepageController as          baseHomepageController;


    class CustomHomepageController extends baseHomepageController
    {
    /**
    * @var EngineInterface
    */
    private $templatingEngine;

   /**
 * @return EngineInterface
 */
public function getTemplatingEngine()
{
    return $this->templatingEngine;
}

/**
 * @param EngineInterface $templatingEngine
 */
public function __construct(EngineInterface $templatingEngine)
{
    $this->templatingEngine = $templatingEngine;
}

/**
 * @param Request $request
 *
 * @return Response
 */
public function indexAction(Request $request)
{
    //var_dump($request);
    $s = "test";
    return $this->templatingEngine->renderResponse('SyliusShopBundle:Homepage:index.html.twig',array("data"=>$s));
}
}

AppBundle/Resources/config/services.yml:

    services:
      app.custom_homepage_controller:
        class: AppBundle\Controller\CustomHomepageController
          arguments:
            - "@templating"

AppBundle/Resources/config/routing.yml:

sylius_shop_homepage:
       path: /
        defaults:
         _controller: app.custom_homepage_controller:indexAction

AppBundle/Resources/views/Homepage/index.html.twig:

{% extends '@SyliusShop/layout.html.twig' %}

    {% block content %}
    <h1>{{ data }}</h1>

    <h2 class="ui horizontal section divider header">

    {{ 'sylius.ui.latest_products'|trans }}
    </h2>
    {% render(url('sylius_shop_partial_product_index_latest', {'count': 4,              'template': '@SyliusShop/Product/_simpleList.html.twig'})) %}

    {% include '@SyliusShop/Homepage/_promos.html.twig' %}

    {% include '@SyliusShop/Homepage/_grid.html.twig' %}
    {% endblock %}

person Yosri Mekni    schedule 12.10.2016    source источник
comment
Этой информации недостаточно, чтобы решить эту проблему. Пожалуйста, опубликуйте оскорбительный код.   -  person EJoshuaS - Reinstate Monica    schedule 12.10.2016
comment
Пожалуйста, опубликуйте код, который вы используете для переопределения контроллера. Вы, вероятно, пропустили один из аргументов   -  person Brett    schedule 13.10.2016
comment
Вам нужно будет определить контроллер как службу и соответствующим образом настроить маршрут: symfony.com/ doc/current/controller/service.html   -  person Cerad    schedule 13.10.2016
comment
Я отредактировал свой пост, чтобы вы могли увидеть мой код, помогите, пожалуйста. Я сделал то, что вы написали @Cerad, но все равно та же проблема:/   -  person Yosri Mekni    schedule 13.10.2016


Ответы (1)


Вам нужно передать механизм шаблонов в качестве аргумента в определении службы, что-то вроде этих строк:

services:
  app.custom_homepage_controller:
    class: AppBundle\Controller\CustomHomepageController
    arguments:
        - "@templating"
person tchap    schedule 13.10.2016
comment
спасибо, теперь появилось другое исключение: во время рендеринга шаблона возникло исключение (ни один из связанных маршрутизаторов не смог сгенерировать маршрут: маршрут «sylius_shop_login» не найден) в SyliusShopBundle:Homepage\Menu:_security.html.twig по адресу строка 7. Я изменил строку рендеринга в CustomHomepageConroller:indexAction на: - person Yosri Mekni; 13.10.2016
comment
теперь появилось другое исключение: во время рендеринга шаблона возникло исключение (ни один из связанных маршрутизаторов не смог сгенерировать маршрут: маршрут «sylius_shop_login» не найден) в SyliusShopBundle:Homepage\Menu:_security.html.twig в строке 7 - person Yosri Mekni; 13.10.2016
comment
Вы включили маршрутизацию магазина? - person tchap; 13.10.2016