Nachdem das Problem von gestern aus Kapitel 5.2 nicht mehr bestand sollte es rasch weitergehen, aber leider stoße ich nun in Kapitel 6 schon wieder auf ein Problem, welches sich auch nach 2 Stunden Recherche noch nicht beheben lässt…
Das Anlegen des eigenen Repository hatte noch wie beschrieben funktioniert, doch beim Zugriff auf besagtes Repository über „LoremQuestions\Subscriber\Detail“ per
$em = $this->container->get('models');
$repository = $em->getRepository(Question::class);
bekommt man lediglich einen Fatal Error im Frontend
Fatal error: Uncaught Error: Call to a member function get() on null in /home/vagrant/www/shopware/custom/plugins/LoremQuestions/Subscriber/Detail.php on line 27
tauscht man nun
$em = $this->container->get('models');
gegen zum Beispiel so etwas…
$em = Shopware()->Container()->get('models');
oder
$em = Shopware()->Models();
kommt zwar kein FatalError mehr, funktionieren will es aber trotzdem nicht…
Schon alles mögliche versucht, aber es will nicht funktionieren… Nach 2 Stunden sieht der Code nun so aus:
public function onPostDispatchDetail(\Enlight_Event_EventArgs $args) {
/** @var \Shopware_Controllers_Frontend_Detail $detailController */
$detailController = $args->getSubject();
$view = $detailController->View();
/** @var ModelManager $em */
//$em = Shopware()->Container()->get('models');
//$plugin = Shopware()->Container()->get('kernel')->getPlugins()['LoremQuestions'];
//$controller = $em->getRepository(Question::class);
//$entityManager->getRepository(Question::class);
//$em = Shopware()->Models();
//$repository = $em->getRepository("Repository");
//$em = $this->container->get('models');
// $repository = $this->container->get('models')->getRepository(Question::class);
//$repository = $em->getRepository(Question::class);
//$repository = Shopware()->Models()->getRepository( __DIR__."/../Models");
// $repository = Shopware()->Models()->getRepository( $this->getPath() ."/../Models");
//$repository = Shopware()->Models()->getRepository("/../Models");
$em = Shopware()->Models();
$repository = $em->getRepository(Question::class);
/*
$articleId = $view->getAssign('sArticle')['articleID'];
$query = $repository->getQuestionQuery($articleId);
$result = $query->getArrayResult();
*/
$result = array();
$view->assign('lorem_faq', $result);
}
Aus dem Fatal Error wurden mitlerweile „Es ist ein Fehler aufgetreten“ - Meldungen wie:
Class ‚Repository‘ does not exist in vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/MappingException.php on line 96
oder
Class ‚LoremQuestions\Subscriber\Question‘ does not exist in vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/MappingException.php on line 96
Den Pfad zum Repository anzugeben mit und ohne Dateiname und oder Dateiendung funktioniert genauso wenig…
Darüber hinaus führt die immer wieder beschriebene Pfadangabe „$this->getPath()“ ebenfalls zu einem Fatal Error an dieser Stelle…
Ich könnte das zwar jetzt über den QueryBuilder realisieren, aber das kann ja nicht Sinn der Übung sein, zumal das Repository dann überhaupt nicht genutzt würde…
Noch jemand eine Idee…? …