# Media path in shopware 6, Bilder-Pfad anhand des Dateinamen in twig ermitteln

**URL:** <https://forum.shopware.com/t/media-path-in-shopware-6-bilder-pfad-anhand-des-dateinamen-in-twig-ermitteln/107402>\
**Category:** Themes & Design\
**Created:** [13. Juni 2025 um 10:59 UTC](https://forum.shopware.com/t/media-path-in-shopware-6-bilder-pfad-anhand-des-dateinamen-in-twig-ermitteln/107402 "2025-06-13T10:59:44Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Stephan\_Grass](https://avatars.discourse-cdn.com/v4/letter/s/76d3ee/32.png) [@Stephan\_Grass](https://forum.shopware.com/u/Stephan_Grass)\
**Post date:** [13. Juni 2025 um 10:59 UTC](https://forum.shopware.com/t/media-path-in-shopware-6-bilder-pfad-anhand-des-dateinamen-in-twig-ermitteln/107402/1 "2025-06-13T10:59:44Z")

</div>

Hallo,  
ich muss in twig auf Bilder zugreifen, wobei nur der Dateiname bekannt ist. In Shopware 5 und smarty ging das so:

`<img src="{media path="media/image/{$aRating[0]}-logo.png"}">`

Wie kann man das mit twig lösen?

Die Bilder sollen ganz normal im Backend hochgeladen werden.

Danke  
Stephan

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [13. Juni 2025 um 11:54 UTC](https://forum.shopware.com/t/media-path-in-shopware-6-bilder-pfad-anhand-des-dateinamen-in-twig-ermitteln/107402/2 "2025-06-13T11:54:22Z")

</div>

> **[Add Custom Assets | Shopware Documentation](https://developer.shopware.com/docs/guides/plugins/plugins/storefront/add-custom-assets.html)**
>
> Documentation for Shopware developers

> **[Working with Media and Thumbnails | Shopware Documentation](https://developer.shopware.com/docs/guides/plugins/plugins/storefront/use-media-thumbnails.html)**
>
> Documentation for Shopware developers

---

<div class="post-metadata">

**Author:** ![Stephan\_Grass](https://avatars.discourse-cdn.com/v4/letter/s/76d3ee/32.png) [@Stephan\_Grass](https://forum.shopware.com/u/Stephan_Grass)\
**Post date:** [13. Juni 2025 um 12:31 UTC](https://forum.shopware.com/t/media-path-in-shopware-6-bilder-pfad-anhand-des-dateinamen-in-twig-ermitteln/107402/3 "2025-06-13T12:31:30Z")

</div>

Wenn ich die in meinem Theme hinterlege ist das schon klar. Und auch, wenn ich die Media-Id schon habe. Ich möchte aber in twig nach dem Dateinamen suchen. Wie in Shopware 5.

---

<div class="post-metadata">

**Author:** ![brettvormkopp](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/brettvormkopp/32/7788_2.png) [@brettvormkopp](https://forum.shopware.com/u/brettvormkopp)\
**Post date:** [13. Juni 2025 um 13:07 UTC](https://forum.shopware.com/t/media-path-in-shopware-6-bilder-pfad-anhand-des-dateinamen-in-twig-ermitteln/107402/4 "2025-06-13T13:07:34Z")

</div>

Ungefähr so als Twig Extension:

./custom/plugins/deinePlugin/src/Twig

```auto
<?php declare(strict_types=1);

namespace deinPlugin\Twig;

use Shopware\Core\Framework\DataAbstractionLayer\EntityRepository;
use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\EqualsFilter;
use Shopware\Core\Framework\Context;
use Shopware\Core\Content\Media\MediaEntity;
use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;

class MediaByFileNameExtension extends AbstractExtension
{
    private EntityRepository $mediaRepository;

    public function __construct(EntityRepository $mediaRepository)
    {
        $this->mediaRepository = $mediaRepository;
    }

    public function getFunctions(): array
    {
        return [
            new TwigFunction('getMediaByFileName', [$this, 'getMediaByFileName']),
        ];
    }

    /**
     * Gibt die vollständige URL eines Bildes anhand des Dateinamens zurück.
     * Achtung: Der Dateiname ist ohne Erweiterung, z. B. "logo" statt "logo.png"
     */
    public function getMediaByFileName(string $fileName): ?string
    {
        $criteria = new Criteria();
        $criteria->addFilter(new EqualsFilter('fileName', $fileName));
        $criteria->addAssociation('mediaFolder');

        $context = Context::createDefaultContext();
        $media = $this->mediaRepository->search($criteria, $context)->first();

        if ($media instanceof MediaEntity) {
            return $media->getUrl(); // Gibt den Pfad zurück, z. B. /media/xyz/logo.png
        }

        return null;
    }
}

```

Im template dann:

```auto
{% set logoUrl = getMediaByFileName('logo') %}
{% if logoUrl %}
    <img src="{{ logoUrl }}" alt="Logo">
{% endif %}

```

In ./custom/plugins/deinePlugin/src/Resources/config/services.xml:

```auto
<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://symfony.com/schema/dic/services
           http://symfony.com/schema/dic/services/services-1.0.xsd">
    <services>
      <service id="deinPlugin\Twig\MediaByFileNameExtension" public="false">
    <tag name="twig.extension"/>
    <argument type="service" id="media.repository"/>
</service>
    </services>
</container>

```

Ist eine mischung von einer lösung von mir und chagpt, also testen und lernen 😃

---

<div class="post-metadata">

**Author:** ![Stephan\_Grass](https://avatars.discourse-cdn.com/v4/letter/s/76d3ee/32.png) [@Stephan\_Grass](https://forum.shopware.com/u/Stephan_Grass)\
**Post date:** [13. Juni 2025 um 13:32 UTC](https://forum.shopware.com/t/media-path-in-shopware-6-bilder-pfad-anhand-des-dateinamen-in-twig-ermitteln/107402/5 "2025-06-13T13:32:41Z")

</div>

> [@brettvormkopp](#):
>
> als Twig Extension:

Super, danke, hat prima geklappt!

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [13. Juni 2025 um 13:35 UTC](https://forum.shopware.com/t/media-path-in-shopware-6-bilder-pfad-anhand-des-dateinamen-in-twig-ermitteln/107402/6 "2025-06-13T13:35:33Z")

</div>

Du triggerst damit jedes Mal eine Datenbankanfrage. Solltest du das x Mal quer über dein Template machen, ggf. auch in Schleife, dann kann das negative Auswirkungen auf die Performance haben.

Die Lösung ist zwar bequem, aber mit Vorsicht zu genießen.

---

<div class="post-metadata">

**Author:** ![Stephan\_Grass](https://avatars.discourse-cdn.com/v4/letter/s/76d3ee/32.png) [@Stephan\_Grass](https://forum.shopware.com/u/Stephan_Grass)\
**Post date:** [13. Juni 2025 um 14:31 UTC](https://forum.shopware.com/t/media-path-in-shopware-6-bilder-pfad-anhand-des-dateinamen-in-twig-ermitteln/107402/7 "2025-06-13T14:31:16Z")

</div>

Oh, ja. Aber wird das nicht gecached?  
Optimal ist hier meine gesamte Umsetzung nicht. Jetzt brauche ich erst mal quick&dirty.

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [13. Juni 2025 um 14:52 UTC](https://forum.shopware.com/t/media-path-in-shopware-6-bilder-pfad-anhand-des-dateinamen-in-twig-ermitteln/107402/8 "2025-06-13T14:52:21Z")

</div>

Solange keine Produkte im Warenkorb sind oder der Kunde eingeloggt ist, ja. Shopware Standard Konfiguration unterstellt.

---

<div class="post-metadata">

**Author:** ![Stephan\_Grass](https://avatars.discourse-cdn.com/v4/letter/s/76d3ee/32.png) [@Stephan\_Grass](https://forum.shopware.com/u/Stephan_Grass)\
**Post date:** [13. Juni 2025 um 15:09 UTC](https://forum.shopware.com/t/media-path-in-shopware-6-bilder-pfad-anhand-des-dateinamen-in-twig-ermitteln/107402/9 "2025-06-13T15:09:56Z")

</div>

Wird nur jeweils 1 mal in der Detailansicht benötigt. Denke das sollte dann wohl kein großes Problem sein.

---

<div class="post-metadata">

**Author:** ![system](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/3X/2/9/29c7587ba660f00e4995d1743162782e5d6d8653.svg) [@system](https://forum.shopware.com/u/system)\
**Post date:** [13. Juli 2025 um 15:11 UTC](https://forum.shopware.com/t/media-path-in-shopware-6-bilder-pfad-anhand-des-dateinamen-in-twig-ermitteln/107402/10 "2025-07-13T15:11:00Z")

</div>

Dieses Thema wurde automatisch 30 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.
