Hallo zusammen,
ich habe ein eigenes Plugin geschrieben, und beim Speichern einer der Entitäten im Backend (also in der save-Funktion des Backend-Controllers) füge ich immer eine neue Url zur RewriteTable hinzu (bzw. update diese). Das mache ich über
Shopware()-\>Modules()-\>RewriteTable()-\>sInsertUrl($orgPath, $path);
Das Problem ist nur, dass dabei folgender Fehler auftritt:
PHP Fatal error: Call to a member function getId() on null in […]/engine/Shopware/Core/sRewriteTable.php on line 710
Was an folgender Zeile liegt:
$update-\>execute(array( $org\_path, $path, Shopware()-\>Shop()-\>getId() ));
Also gibt Shopware()->Shop() null zurück. Weiß jemand woran das liegen kann und wie ich das fixen kann?
Vielen Dank für eure Hilfe!
Beste Grüße Tim
Hi Tim,
im Backend hast du keinen Shop Context. Daher gibt Shopware()->Shop() auch kein Objekt zurück.
Falls du aber zwigend einen Shop Context brauchst, musst du diesen manuell erstellen.
$repository = Shopware()->Container()->get('models')->getRepository('Shopware\Models\Shop\Shop');
$shop = $repository->getActiveById($shopId);
$shop->registerResources();
Das sollte dein Problem beheben.
Viele Grüße aus Schöppingen
Michael Telgmann
1 „Gefällt mir“
Hallo Leute,
ich hab nun auch ein Problem bei dem Shopware()->Shop() Null zurückgibt.
Mein Szenario:
Ich hab einen replace Hook und zwar folgenden
Shopware_Controllers_Backend_Order::createDocumentAction::replace
Diesen hab ich eigentlich um die createDocument zu ersetzen welche aber private ist. Meine createDocument erzeugt Dokumente vom Typ Document welcher eine Erweiterung von Shopware_Components_Document ist. In dieser Erweiterung ersetze ich die Methoden initDocument() sowie saveDocument(). Soweit alles gut und funktioniert.
Mein Problem tritt dann in der Methode assignValue4x() auf, und zwar beim initialisieren von sArticles, also in der Zeile
$articleModule = Shopware()->Modules()->Articles();
Der Konstruktor von sArticles ruft Shopware()->Shop()->getCategory() auf was sobald ich meine erweiterte Document Klasse verwende schief läuft:
Fatal error: Call to a member function getCategory() on null in C:\MAMP\htdocs\dev1\engine\Shopware\Core\sArticles.php on line 189
503 Service Unavailable
Warum zerlegt es mich sobald ich meine Document verwende und warum funktionierts wenn ich die ursprüngliche Shopware_Components_Document verwende?
Würde mich über sachdienliche Hinweise jeglicher Art sehr freuen.
Vielen Dank und Beste Grüße,
Martin