Media in Storefront ausgeben anhand der Media ID

Hallo Zusammen,

 

Nehmen wir an ich habe ein custom Field vom Typ Media an einem Produkt.

Bei Auswahl eines Bildes im Adminbereich und Speicherung des Produkts wird eine MediaID in der DB als Custom Field dieses Produkts gespeichert.

 

In der Storefront kann ich auf dieses customField zugreifen.

Allerdings beinhaltet das custom field lediglich die Media ID…

Wie kriege ich nun das tatsächliche Bild im Shop angezeigt?

Über den Container finde ich kein media.repository…

 

Vielen Dank im Voraus!

 

Grüße

Dennis

Würde ich auch gerne wissen…

Hallo zusammen,

mir würde auch adhoc das Media-Repository einfallen, dies hat die ID ‘media.repository’ und lässt sich per Constructor rein reichen lassen.
(Hinweis: PHPStorm kann meist die IDs der Repositories nicht auflösen, sind aber trotzdem vorhanden)

Gruß

Krispin

Genau.

Das war mein Problem. PHPStorm findet z.B. media_translation.repository jedoch nicht media.repository

 

Gelöst mit folgendem Code:

$criteria = new Criteria();
$criteria->addFilter(new EqualsAnyFilter('id', $mediaIds));

$media = $this->container->get('media.repository')->search($criteria, $context)->getElements();

return $media;

 

Viele Grüße

Dennis

1 „Gefällt mir“

Ergänzung:

 

Die entsprechende URL der einzelnen Bilder lässt sich dann aus den Media Objekten im Template mit media.url abholen

Hallo DenKon26,

ich versuche deine Lösung auch in meinem Fall zu benutzen, um ein media-Objekt  mit der Media-Id anhand zu abhollen.  

Ich bräuchte das Media-Objekt für nicht aktiven Kategorien im Menü. 

Wie integriere ich das php-code in den twig-template? Das Media-Object aus navigation hat kein media.repository…

@amdl schrieb:

Hallo DenKon26,

ich versuche deine Lösung auch in meinem Fall zu benutzen, um ein media-Objekt  mit der Media-Id anhand zu abhollen.  

Ich bräuchte das Media-Objekt für nicht aktiven Kategorien im Menü. 

Wie integriere ich das php-code in den twig-template? Das Media-Object aus navigation hat kein media.repository…

Ich habe mir die Media Objekte in einem Subscriber geholt und diese dann per ArrayEntity an die View gegeben.

Als Key empfiehlt sich in deinem Fall dann wahrscheinlich die ID der Kategorie.