我如何将一个存储库注入CommandController

时间:2013-09-03 14:31:52

标签: typo3 extbase

我有一个这样的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中那样自动注入repostory。

如何手动注入存储库?

3 个答案:

答案 0 :(得分:6)

您可以在命令控制器中注入存储库。在您的doccomments中添加@inject后,您必须删除缓存和/或缓存文件?

答案 1 :(得分:5)

确实,您需要清除缓存。显然在我的Typo3 6.2案例中,它只有在我从安装工具中清除缓存时才有效。

enter image description here

注意:我在阅读scripting-base.de(德语版)的博客文章后得到了这个提示。

答案 2 :(得分:1)

如果您将以下内容添加到您的用户或群组TSConfig,您还可以通过右上角的“Flash”菜单清除系统缓存,而不仅仅是在安装工具中:

options.clearCache.system = 1