как да инжектирам хранилище в 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