2016-10-12 4 views
0

Я пытаюсь переопределить HomepageController:indexAction из SyliusShopBundle передать некоторые данные в index.html.twig но исключение продолжают появляться:Sylius: Catchable Ошибка: Аргумент 1 передается ShopBundle Controller HomepageController :: __ конструкт()

Catchable Fatal Error: Argument 1 passed to AppBundle\Controller\CustomHomepageController::__construct() must be an instance of Symfony\Bundle\FrameworkBundle\Templating\EngineInterface, none given, called in C:\wamp3\www\acme\app\cache\dev\appDevDebugProjectContainer.php on line 1619 and defined

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/Ресурсы/конфигурации/services.yml:

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

AppBundle/Ресурсы/конфигурации/routing.yml:

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

AppBundle/Ресурсы/просмотров/Главная/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 %} 
+0

Этого недостаточно, чтобы решить эту проблему. Пожалуйста, разместите нарушительный код. – EJoshuaS

+0

Пожалуйста, разместите код, используемый для переопределения контроллера. Вероятно, вам не хватает одного из аргументов – Brett

+0

. Вам нужно будет определить свой контроллер как услугу и соответствующим образом настроить свой маршрут: http://symfony.com/doc/current/controller/service.html – Cerad

ответ

1

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

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

thx, теперь появилось еще одно исключение: Исключение было сделано во время рендеринга шаблона («Ни один из цепочечных маршрутизаторов не смог создать маршрут: sylius_shop_login 'not found ") в SyliusShopBundle: Домашняя страница \ Меню: _security.html.twig в строке 7. Я изменил визуализацию в CustomHomepageConroller: indexAction с: –

+0

теперь появилось еще одно исключение: во время рендеринга было выбрано исключение шаблона («Ни один из цепных маршрутизаторов не смог создать маршрут: Route 'sylius_shop_login' not found") в SyliusShopBundle: Домашняя страница \ Меню: _security.html.twig в строке 7 –

+0

Включили ли вы маршрутизацию магазина? – tchap

 Смежные вопросы

  • Нет связанных вопросов^_^