как добавить репозиторий в CommandController

Я получил такой commandController (используя TYPO3 6.1):

class MyCommandController extends \TYPO3\CMS\Extbase\Mvc\Controller\CommandController {
    /**
     * fileRepository
     *
     * @var \VENDOR\MyExt\Domain\Repository\FileRepository
     * @inject
     */
    protected $fileRepository;
}

но когда я пытаюсь бросить

$this->fileRepository->findAll();

я получил:

Fatal error: Call to a member function findAll() on a non-object in

похоже, что репозиторий не автоматически внедряется с помощью @inject, как в ActionControllers.

Как добавить репозиторий вручную?


person TomGrill Games    schedule 03.09.2013    source источник
comment
вы можете вводить репозитории в свой командный контроллер. я действительно не знаю, почему в вашем случае была выброшена эта ошибка. ты кеш-файлы удалял?   -  person freshp    schedule 03.09.2013
comment
ты был прав. удаление кеша решило проблему.   -  person TomGrill Games    schedule 03.09.2013
comment
@freshp - создайте ответ, чтобы Томас мог его принять.   -  person biesior    schedule 04.09.2013


Ответы (3)


вы можете вводить репозитории в свой командный контроллер. после добавления @inject в ваши документы вам нужно удалить кеш и/или файлы кеша?

person freshp    schedule 04.09.2013

Действительно, нужно очистить кэши. По-видимому, в моем случае на Typo3 6.2 это сработало только тогда, когда я очистил кеши из инструмента установки.

введите здесь описание изображения

Примечание. Я получил этот совет после прочтения сообщения в блоге на scripting-base.de (на немецком языке).

person Valentin Despa    schedule 10.11.2014

Если вы добавите следующее к своим пользователям или группам TSConfig, вы сможете очистить системные кеши также через меню «flash» в правом верхнем углу, а не только в инструменте установки:

options.clearCache.system = 1
person Sascha    schedule 03.02.2015