Typo3 显示Extbase对象错误的扩展生成器前端插件
我使用名为事件的扩展生成器创建了一个扩展。还创建了一个前端插件。创建的模型具有属性eventDate和eventtitle。控制器具有以下操作:显示、列出和新建 我将这个插件添加到一个页面。但它似乎不起作用 它显示了一个错误:$events=$this->eventRepository->findAll;在EventController中 php日志显示了以下错误:致命错误:在第44行的../typo3conf/ext/event/Classes/Controller/EventController.php中对非对象调用成员函数findAll appache日志显示以下错误:Typo3 显示Extbase对象错误的扩展生成器前端插件,typo3,Typo3,我使用名为事件的扩展生成器创建了一个扩展。还创建了一个前端插件。创建的模型具有属性eventDate和eventtitle。控制器具有以下操作:显示、列出和新建 我将这个插件添加到一个页面。但它似乎不起作用 它显示了一个错误:$events=$this->eventRepository->findAll;在EventController中 php日志显示了以下错误:致命错误:在第44行的../typo3conf/ext/event/Classes/Controller/EventControll
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
我如何解决这个问题 请检查eventRepository是否正确注入。在扩展生成器中的模型的域对象设置下选中“聚合根”选项,并检查文件yourext/Classes/Domain/Repository/EventRepository.php是否已创建。需要清除后端中的缓存
存储库需要由以下两种方式注入:
TYPO3版本<6.0
或TYPO3版本>=6.0
/**
*事件存储库
*
*@var\YourVendor\YourExtension\Domain\Repository\EventRepository
*@注入
*/
受保护的存储库;
请检查eventRepository是否正确注入。在扩展生成器中的模型的域对象设置下选中“聚合根”选项,并检查文件yourext/Classes/Domain/Repository/EventRepository.php是否已创建。需要清除后端中的缓存
存储库需要由以下两种方式注入:
TYPO3版本<6.0
或TYPO3版本>=6.0
/**
*事件存储库
*
*@var\YourVendor\YourExtension\Domain\Repository\EventRepository
*@注入
*/
受保护的存储库;
记住也要登出。 有时,在您登录/注销之前,更改不会传播
或者禁用/启用扩展。记住也要登录注销。 有时,在您登录/注销之前,更改不会传播
或者禁用/启用扩展。嗯,我忘记更新代码了。错误得到纠正。是的,你给出的答案是答案。非常感谢。但是,MyText存储库扩展了\TYPO3\CMS\Extbase\Persistence\repository。所以在我的myext/domain/repository/mextrepository.php中,我是否需要添加findAll函数。。。我的extbase/persistence/repository.php有一个findAllfunction..在这里不会自动继承吗?有时候,在6.2 LTS安装上只使用@inject stuff是行不通的。不仅仅是添加受保护的变量,还有更多的内容。我忘了更新代码了。错误得到纠正。是的,你给出的答案是答案。非常感谢。但是,MyText存储库扩展了\TYPO3\CMS\Extbase\Persistence\repository。所以在我的myext/domain/repository/mextrepository.php中,我是否需要添加findAll函数。。。我的extbase/persistence/repository.php有一个findAllfunction..在这里不会自动继承吗?有时候,在6.2 LTS安装上只使用@inject stuff是行不通的。除了添加受保护的变量之外,还有更多的内容。
/**
* @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;
}