Verhalten von Model Objekten

Hallo zusammen,

die for Schleife soll 19 Bilder aus dem Ressourcen Ordner eines Plugins in den DB bzw. einen Ordner schreiben.

Die Frage nun: Warum steht in DB und Ordner nur das letzte Bild “example19” … warum nicht die 18 davor… ich nulle die Objekte sogar… und oben bei fileObject kommt je Iteration ein neues Bild an die Reihe?? oder gibt es gar eine setFile s Methode?

 

for( $i = 1; $i < 20 ; $i++) {
				$fileObject = new \Symfony\Component\HttpFoundation\File\File($example_sprite.'\example'. $i .'.jpg');
				$album = Shopware()->Models()->find('Shopware\Models\Media\Album', $insertLastId2);
				
				$media = Shopware()->Models()->find("Shopware\\Models\\Media\\Media", $insertLastId2);
				$media->setAlbum($album);
				$media->setDescription('example');
				$media->setCreated(new DateTime());
				$media->setExtension('jpg');
				$identity = Shopware()->Auth()->getIdentity();
				if ($identity !== null) {
					$media->setUserId($identity->id);
				} else {
					$media->setUserId(0);
				}
				//set the upload file into the model. The model saves the file to the directory
				$media->setFile($fileObject);
				Shopware()->Models()->persist($media);
				Shopware()->Models()->flush();
				
				$fileObject = null;
				$album = null;
				$media = null;
				$identity = null;
}

Vielen Dank für ein mögliches kurzes Feedback!

Hallo,

da du den Wert für $insertLastId2 nicht veränderst, suchst du dir mit

$media = Shopware()->Models()->find("Shopware\\Models\\Media\\Media", $insertLastId2);

immer dasselbe Objekt, dessen File du dann überschreibst.

Grüße,
Sven

1 „Gefällt mir“

Das hat nunmehr hier funktioniert. Vielen herzlichen Dank!