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…
Krispin
6. November 2019 um 15:36
3
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
amdl
11. November 2019 um 12:25
6
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.