Hallo,
ich arbeite mich gerade durch das Extbase-Buch von Patrick Lobacher und konnte die Dependency Injection des Persistence Manager nicht nachvollziehen.
Beim Aufruf von $this->persistenceManager->persistAll(); kommt die Meldung
Offensichtlich ist $this->persistenceManager NULL. Ich habe eine Abfrage eingefügt, die dass überprüft und mir bestätigt hat.
Wenn ich den persistenceManager mit
instanziiere funktioniert es. Aber warum funktioniert die DI nicht?
Hier mein Code:
Viele Grüße
Wonko
ich arbeite mich gerade durch das Extbase-Buch von Patrick Lobacher und konnte die Dependency Injection des Persistence Manager nicht nachvollziehen.
Beim Aufruf von $this->persistenceManager->persistAll(); kommt die Meldung
Code:
PHP Fatal error: Call to a member function persistAll() on null in /www/sites/ExtbaseBuch/typo3conf/ext/simpleblog/Classes/Controller/BlogController.php on line 70
Wenn ich den persistenceManager mit
PHP-Code:
$this->persistenceManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance("TYPO3\\CMS\\Extbase\\Persistence\\Generic\\PersistenceManager");
Hier mein Code:
PHP-Code:
<?php
namespace Lobacher\Simpleblog\Controller;
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
/**
* BlogController
*/
class BlogController extends ActionController {
/**
* blogRepository
*
* @var \Lobacher\Simpleblog\Domain\Repository\BlogRepository
* @inject
*/
protected $blogRepository = NULL;
/**
* Persistence Manager
*
* @var \TYPO3\CMS\Extbase\Persistence\Generic\PersistenceManager
* @inject
*/
protected $persistenceManager;
/**
* action list
*
* @return void
*/
public function listAction() {
$blogs = array();
for ($i=1; $i<=3; $i++) {
$blog = $this->objectManager->get('\\Lobacher\\Simpleblog\\Domain\\Model\\Blog');
$blog->setTitle('Das ist der ' . $i . '. Blog!');
$this->blogRepository->add($blog);
}
//$this->persistenceManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance("TYPO3\\CMS\\Extbase\\Persistence\\Generic\\PersistenceManager");
if (is_null ($this->persistenceManager)) {
return "PersistenceManager ist Null";
}
$this->persistenceManager->persistAll();
$this->view->assign('blogs', $this->blogRepository->findAll());
}
}
Wonko
Dependency Injection funktioniert nicht
Aucun commentaire:
Enregistrer un commentaire