The class 'Doctrine\ORM\PersistentCollection' was not found

hallo zusammen, hab da ein problem mit den models. folgendes geht und sollte als master dienen: $result = Shopware()-\>Models()-\>getRepository('Shopware\Models\Article\Supplier')-\>findOneBy( array('id' =\> 1) ); if(!$result){ return false; } $data = Shopware()-\>Models()-\>toArray($result); das nicht: $result = Shopware()-\>Models()-\>getRepository('Shopware\Models\Category\Category')-\>findOneBy( array('id' =\> 1) ); if(!$result){ return false; } $data = Shopware()-\>Models()-\>toArray($result); [quote]The class ‘Doctrine\ORM\PersistentCollection’ was not found in the chain configured namespaces Shopware\Models, Shopware\CustomModels\ in vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/MappingException.php on line 37[/quote] warum geht das nicht?

Hi, die eigentliche Ursache konnte ich auch nicht identifizieren, kann ich aber reproduzieren. Scheint beim Serialisieren des Objektes aufzutreten - also im toArray(). Ich kann momentan nur empfehlen, toArray nach Möglichkeit zu vermeiden, indem du dir bspw. einen Query baust und den als Array hydrierst. lG Daniel

Hallo Daniel, danke schonmal. Mir ist aufgefallen das Models/Category prinzpiell schwer zu verwenden ist. So geht z.b. ein insert auch nicht :frowning: $result = new \Shopware\Models\Category\Category(); $result-\>fromArray($data); $violations = Shopware()-\>Models()-\>validate($result); if ($violations-\>count() \> 0) { throw new ApiException\ValidationException($violations); } Shopware()-\>Models()-\>persist($result); Shopware()-\>Models()-\>flush(); return $result; ab den zeitpunkt wo flush() ausgeführt wird fliegt mir das um die Ohren: [quote] Fatal error: Call to a member function getId() on a non-object in /engine/Shopware/Components/Model/CategorySubscriber.php on line 336 503 Service Unavailable [/quote] ein update geht: $result = Shopware()-\>Models()-\>getRepository('Shopware\Models\Category\Category')-\>find($id); if (!$result) { throw new ApiException\NotFoundException("Category by id $id not found"); } $result-\>fromArray($data); $violations = Shopware()-\>Models()-\>validate($result); if ($violations-\>count() \> 0) { throw new ApiException\ValidationException($violations); } Shopware()-\>Models()-\>flush(); return $result;

hab’s mal mit \Shopware\Components\Api\Resource\Category probiert: $r = new \Shopware\Components\Api\Resource\Category(); $r-\>setManager($this-\>getManager()); $r-\>create($data); [quote] Fatal error: Call to a member function getId() on a non-object in /var/www/vhosts/geb234.de/soennecken.geb234.de/engine/Shopware/Components/Model/CategorySubscriber.php on line 336 503 Service Unavailable [/quote] $data: Array ( [id] =\> 13 [parentId] =\> 0 [path] =\> Schreiben & Korrigieren [name] =\> Schreiben & Korrigieren [position] =\> 3 [metaKeywords] =\> [metaDescription] =\> Zum Schreiben und Korrigieren benötigen Sie die richtigen Schreibgeräte und Korrekturmittel. Am besten sind dafür unsere hochwertigen Schreibutensilien geeignet. Von Bleistiften, Fasermalern, Füllfederhaltern - oder auch Füller genannt - über Gelschreiber, Korrekturmittel und Kugelschreiber - auch Kulli genannt - bis hin zu Linealen, Textmarkern, Radierern (Radiergummi), Spitzern, Stempeln, Tintenroller oder Zeichenbedarf. Hier finden Sie mit Sicherheit das richtige Schreibgerät oder Korrekturmittel. Qualitäts-Bleistifte zum Zeichnen, Schreiben und Skizzieren für höchste Ansprüche. In der Kategorie Schreiben und Korrigieren geben wir Ihnen einen Einblick auf die Markenwelt von Faber Castel, STAEDTLER, Soennecken, edding, rotring, Schneider, BIC und viele mehr. Ein umfangreiches Sortiment präsentieren wir Ihnen unter der Rubrik hochwertige Schreibgeräte. Besonders die Marke PARKER zeigt Ihnen hier eine gehobenen Auswahl ausgewählter Schreibgeräte. [cmsHeadline] =\> Schreiben & Korrigieren [cmsText] =\> Zum Schreiben und Korrigieren benötigen Sie die richtigen Schreibgeräte und Korrekturmittel. Am besten sind dafür unsere hochwertigen Schreibutensilien geeignet. Von Bleistiften, Fasermalern, Füllfederhaltern - oder auch Füller genannt - über Gelschreiber, Korrekturmittel und Kugelschreiber - auch Kulli genannt - bis hin zu Linealen, Textmarkern, Radierern (Radiergummi), Spitzern, Stempeln, Tintenroller oder Zeichenbedarf. Hier finden Sie mit Sicherheit das richtige Schreibgerät oder Korrekturmittel. Qualitäts-Bleistifte zum Zeichnen, Schreiben und Skizzieren für höchste Ansprüche. In der Kategorie Schreiben und Korrigieren geben wir Ihnen einen Einblick auf die Markenwelt von Faber Castel, STAEDTLER, Soennecken, edding, rotring, Schneider, BIC und viele mehr. Ein umfangreiches Sortiment präsentieren wir Ihnen unter der Rubrik hochwertige Schreibgeräte. Besonders die Marke PARKER zeigt Ihnen hier eine gehobenen Auswahl ausgewählter Schreibgeräte. [template] =\> [active] =\> 1 [blog] =\> 0 [showFilterGroups] =\> 1 [external] =\> [hideFilter] =\> ) // edit oh man, sorry insert geht. $data ist nicht richtig :smiley: