Extension Builder前端插件显示Extbase对象错误

dor*_*ora 1 typo3

我使用名为"Events"的Extension构建器创建了一个扩展.还创建了一个前端插件.创建的模型具有属性eventDateeventtitle.控制器具有以下操作:Show, List, and New.

我将此插件添加到页面中.但它似乎没有奏效.

它向我显示了一个错误: $events = $this->eventRepository->findAll();EventController.

php日志显示以下错误: Fatal error: Call to a member function findAll() on a non-object in ../typo3conf/ext/event/Classes/Controller/EventController.php on line 44

appache日志向我显示以下错误:

Thu May 09 19:19:26 2013] [error] [client ::1] PHP  30. TYPO3\\Event\\Controller\\EventController->listAction() /home/Public/Project/typo3/typo3_src-6.1.0/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php:277, referer: http://localhost/Project/typo3/typo3/mod.php?M=web_ViewpageView&id=74
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

小智 5

请检查是否eventRepository正确注入.检查扩展构建器中模型的"域对象设置"下的"是聚合根"选项,并检查文件yourext/Classes/Domain/Repository/EventRepository.php是否已创建.需要清除后端的缓存!

存储库需要注入

TYPO3版本<6.0

/**
 * @var Tx_YourExt_Domain_Repository_EventRepository
 */
protected $eventRepository;

/**
 * injectEventRepository
 *
 * @param Tx_YourExt_Domain_Repository_EventRepository $eventRepository
 * @return void
 */
public function injectEventRepository(Tx_YourExt_Domain_Repository_EventRepository $eventRepository) {
    $this->eventRepository = $eventRepository;
}
Run Code Online (Sandbox Code Playgroud)

或TYPO3版本> = 6.0

/**
 * eventRepository
 *
 * @var \YourVendor\YourExtension\Domain\Repository\EventRepository
 * @inject
 */
protected $eventRepository;
Run Code Online (Sandbox Code Playgroud)