1

「Events」という拡張機能ビルダーを使用して拡張機能を作成しました。また、フロントエンド プラグインを作成しました。作成されたモデルには、属性eventDateとがありますeventtitle。コントローラーには次のアクションがあります。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

Apache ログには、次のエラーが表示されます。

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

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

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;
}

または TYPO3 バージョン >= 6.0

/**
 * eventRepository
 *
 * @var \YourVendor\YourExtension\Domain\Repository\EventRepository
 * @inject
 */
protected $eventRepository;
于 2013-05-10T09:18:04.623 に答える