Задать вопрос
@1alexandr

Symfony2. Как правильно использовать репозиторий в контроллере?

Здравствуйте, уважаемые знатоки. Подскажите мне, пожалуйста что я делаю не так и как победить эту ошибку:
Catchable Fatal Error: Argument 1 passed to Allergo\MainBundle\Controller\HomePageController::__construct() must be an instance of Allergo\MainBundle\Entity\CategoryRepository, none given, called in /var/www/allergo.loc/app/cache/dev/classes.php on line 2456 and defined


а вот сам код:

.../Resourse/config/controllers.yml
services:

    allergo_main.home_page_controller:
        class: Allergo\MainBundle\Controller\HomePageController
        arguments: [ @repository.category ]


../Resourse/config/repositories.yml
services:
    repository.category:
        class: Allergo\MainBundle\Entity\CategoryRepository
        factory_service: doctrine.orm.entity_manager
        factory_method: getRepository
        arguments: [ Allergo\MainBundle\Entity\Category ]


# .../Resourse/config/services.yml
imports:
    - { resource: repositories.yml }
    - { resource: controllers.yml }

services:
#    allergo_main.example:
#        class: Allergo\MainBundle\Example
#        arguments: [@service_id, "plain_value", %parameter%]


../Controller/HomePageController.php
/**
     * @var CategoryRepository
     */
    private $categoryRepository;

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


app/config/config.yml
imports:
    - { resource: "@AllergoMainBundle/Resources/config/services.yml" }
    - { resource: parameters.yml }
    - { resource: security.yml }

....
  • Вопрос задан
  • 2861 просмотр
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
@shoomyst
dumb
У вас контроллер как сервис, надо еще посмотреть роутинг.
И неплохо было бы стек трейс глянуть
Ответ написан
Комментировать
BoShurik
@BoShurik Куратор тега Symfony
Symfony developer
Похожий вопрос

symfony.com/doc/current/cookbook/controller/servic...

В настройках роута надо заменить
defaults: { _controller: TestTestBundle:Test:index }

на
defaults: { _controller: test:indexAction }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы