{"id":13745,"date":"2023-09-19T20:02:24","date_gmt":"2023-09-19T20:02:24","guid":{"rendered":"https:\/\/www.bay20.com\/?p=13745"},"modified":"2025-05-14T15:21:00","modified_gmt":"2025-05-14T09:36:00","slug":"so-ubertragen-sie-die-daten-von-php-in-das-twig-template-in-shopware-6","status":"publish","type":"post","link":"https:\/\/www.bay20.com\/de\/so-ubertragen-sie-die-daten-von-php-in-das-twig-template-in-shopware-6\/","title":{"rendered":"Wie man die Daten aus PHP in die Twig-Vorlage in Shopware 6 \u00fcbertr\u00e4gt"},"content":{"rendered":"\n<p>Shopware 6 verwendet ein Tool namens <a href=\"https:\/\/twig.symfony.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Twig Template Engine<\/a>, um die Seiten auf der Website anzuzeigen. Sobald Sie verstehen, wie es funktioniert, werden Sie es einfach und anpassungsf\u00e4hig finden. Wenn Sie wie ich ein Programmierer sind, der sich haupts\u00e4chlich mit dem PHP-Aspekt von Shopware 6 besch\u00e4ftigt, m\u00fcssen Sie vor allem lernen, wie man PHP-Variablen an Twig-Vorlagen \u00fcbergibt. In diesem Artikel wird genau erkl\u00e4rt, wie man das macht.<\/p>\n\n\n\n<p><strong>Dumping der Variablen in Twig:<\/strong><\/p>\n\n\n\n<p>Zun\u00e4chst m\u00fcssen wir feststellen k\u00f6nnen, ob unsere PHP-Variable an die Twig-Vorlage \u00fcbergeben wurde. Der Befehl \u201edump\u201c muss irgendwo in unserer Vorlage platziert werden, wie unten gezeigt.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{% block base_content %}\n    &lt;p&gt;Dump the variables of PHP in the twig template!&lt;\/p&gt;\n    {{ dump() }}\n{% endblock %}<\/code><\/pre>\n\n\n\n<p>Jetzt k\u00f6nnen Sie das Frontend der Website aufrufen und sich das Ergebnis selbst ansehen, wie auf dem folgenden Screenshot zu sehen ist.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"462\" height=\"248\" src=\"https:\/\/www.bay20.com\/wp-content\/uploads\/2023\/07\/image.png\" alt=\"Twig Template in Shopware 6\" class=\"wp-image-13749\" srcset=\"https:\/\/www.bay20.com\/de\/wp-content\/uploads\/2023\/07\/image.png 462w, https:\/\/www.bay20.com\/de\/wp-content\/uploads\/2023\/07\/image-300x161.png 300w\" sizes=\"auto, (max-width: 462px) 100vw, 462px\" \/><\/figure>\n\n\n\n<p>Klicken Sie auf die Dreiecke, um detailliertere Informationen zu erhalten. Mit der Tastenkombination Strg + F k\u00f6nnen Sie auch nach bestimmten Eintr\u00e4gen suchen, wobei der gesuchte Begriff hervorgehoben wird. Das ist sehr praktisch!<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"733\" height=\"881\" src=\"https:\/\/www.bay20.com\/wp-content\/uploads\/2023\/07\/image-1.png\" alt=\"Twig Template in Shopware 6\" class=\"wp-image-13754\" srcset=\"https:\/\/www.bay20.com\/de\/wp-content\/uploads\/2023\/07\/image-1.png 733w, https:\/\/www.bay20.com\/de\/wp-content\/uploads\/2023\/07\/image-1-300x361.png 300w, https:\/\/www.bay20.com\/de\/wp-content\/uploads\/2023\/07\/image-1-250x300.png 250w\" sizes=\"auto, (max-width: 733px) 100vw, 733px\" \/><\/figure>\n\n\n\n<p>Sie k\u00f6nnen die gleiche Art und Weise verwenden, wie die Twig-Vorlagen-Engine auf Variablen zugreift, um eine einzelne Variable anzuzeigen. Wenn Sie zum Beispiel nur den Wert der Variable \u201ecurrencyFactor\u201c anzeigen m\u00f6chten, k\u00f6nnen Sie dies wie folgt tun:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{% block base_content %}\n    &lt;p&gt;Dump the variables!&lt;\/p&gt;\n    {{ dump( context.context.currencyFactor ) }}\n{% endblock %}<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"388\" height=\"101\" src=\"https:\/\/www.bay20.com\/wp-content\/uploads\/2023\/07\/image-2.png\" alt=\"Twig Template in Shopware 6\" class=\"wp-image-13755\" srcset=\"https:\/\/www.bay20.com\/de\/wp-content\/uploads\/2023\/07\/image-2.png 388w, https:\/\/www.bay20.com\/de\/wp-content\/uploads\/2023\/07\/image-2-300x78.png 300w\" sizes=\"auto, (max-width: 388px) 100vw, 388px\" \/><\/figure>\n\n\n\n<p>Da wir nun wissen, wie wir die Variablen, auf die Twig zugreifen kann, anzeigen k\u00f6nnen, k\u00f6nnen wir auch unsere eigenen benutzerdefinierten Variablen an Twig \u00fcbergeben.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u00dcbergabe von Variablen an ein Twig-Template von einem Storefront-Controller.<\/strong><\/h3>\n\n\n\n<p>Die typische Methode zur Erstellung eigener benutzerdefinierter Seiten mit eigenen benutzerdefinierten URLs ist die Verwendung von Storefront-Controllern. Das folgende Beispiel zeigt, wie der TestController eine Storefront-Seite mit einer Twig-Vorlage namens index.html.twig unter der URL-Adresse \u201eexample.com\/test\u201c wiedergibt.<\/p>\n\n\n\n<p>Benutzerdefinierten Controller erstellen (Pfad: &#8211; custom\/plugins\/YourCustomPlugin\/src\/Controller\/TestController.php):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nnamespace YourCustomPlugin\\Storefront\\Controller;\n\nuse Shopware\\Core\\Framework\\Routing\\Annotation\\RouteScope;\nuse Shopware\\Core\\System\\SalesChannel\\SalesChannelContext;\nuse Shopware\\Storefront\\Controller\\StorefrontController;\nuse Symfony\\Component\\HttpFoundation\\Request;\nuse Symfony\\Component\\HttpFoundation\\Response;\nuse Symfony\\Component\\Routing\\Annotation\\Route;\n\n\/**\n * @RouteScope(scopes={\"storefront\"})\n *\/\nclass TestController extends StorefrontController\n{\n    \/**\n     * @Route(\"\/test\", name=\"frontend.testplugin.test\", methods={\"GET\"})\n     *\/\n    public function showPage(Request $request, SalesChannelContext $context): Response\n    {\n        return $this-&gt;renderStorefront('@YourCustomPlugin\/storefront\/page\/test\/index.html.twig', &#91;\n            'customString' =&gt; 'Custom string value',\n            'customArray' =&gt; &#91; 'key1' =&gt; 'Value 1', 'key2' =&gt; 'Value 2' ]\n        ]);\n    }\n\n}<\/code><\/pre>\n\n\n\n<p>Erstellen Sie eine Twig-Vorlage (Pfad &#8211; custom\/plugins\/YourCustomPlugin\/src\/Resources\/views\/storefront\/page\/test\/index.html.twig):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{% sw_extends '@Storefront\/storefront\/base.html.twig' %}\n \n{% block base_content %}\n    &lt;p&gt;Dump the string!&lt;\/p&gt;\n    {{ dump( customString ) }}\n \n    &lt;p&gt;Dump the array!&lt;\/p&gt;\n    {{ dump( customArray ) }}\n \n    &lt;p&gt;Dump the value of key1 of the array!&lt;\/p&gt;\n    {{ dump( customArray.key1 ) }}\n{% endblock %}<\/code><\/pre>\n\n\n\n<p>Erstellen Sie die Datei routes.xml (Pfad &#8211; custom\/plugins\/YourCustomPlugin\/src\/Resources\/config\/routes.xml):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\" ?&gt;\n \n&lt;routes xmlns=\"http:\/\/symfony.com\/schema\/routing\"\n        xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\n        xsi:schemaLocation=\"http:\/\/symfony.com\/schema\/routing http:\/\/symfony.com\/schema\/routing\/routing-1.0.xsd\"&gt;\n \n    &lt;import resource=\"..\/..\/Storefront\/Controller\/**\/*Controller.php\" type=\"annotation\" \/&gt;\n&lt;\/routes&gt;<\/code><\/pre>\n\n\n\n<p>Dies f\u00fchrte zu dem folgenden Ergebnis, das unter der URL-Adresse \u201eexample.com\/test\u201c angezeigt wird:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"620\" height=\"431\" src=\"https:\/\/www.bay20.com\/wp-content\/uploads\/2023\/07\/image-3.png\" alt=\"Twig Template in Shopware 6\" class=\"wp-image-13779\" srcset=\"https:\/\/www.bay20.com\/de\/wp-content\/uploads\/2023\/07\/image-3.png 620w, https:\/\/www.bay20.com\/de\/wp-content\/uploads\/2023\/07\/image-3-300x209.png 300w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/figure>\n\n\n\n<p><strong>Bitte kontaktieren Sie uns unter <strong><a href=\"mailto:manish@bay20.com\">manish@bay20.com<\/a><\/strong> oder rufen Sie uns unter <strong><a href=\"https:\/\/api.whatsapp.com\/send?phone=+918800519180&amp;text=Hi,%20I%20contacted%20you%20through%20your%20website.\">+91-8800519180<\/a><\/strong> an, wenn Sie Unterst\u00fctzung im Zusammenhang mit Shopware ben\u00f6tigen. Sie k\u00f6nnen auch die <strong><a href=\"https:\/\/www.bay20.com\/de\/shopware-entwicklungsunternehmen\/\">Shopware-<strong>Entwicklungsseite<\/strong><\/a><\/strong> besuchen, um die von uns angebotenen Dienstleistungen zu pr\u00fcfen.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Shopware 6 uses a tool called Twig template engine to show the pages on the website. Once you understand how it works, you&#8217;ll find it easy and adaptable.<\/p>\n","protected":false},"author":30,"featured_media":13923,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[78,115,91],"tags":[],"class_list":["post-13745","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-shopware","category-shopware-6","category-shopware-6-anleitungen"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/posts\/13745","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/users\/30"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/comments?post=13745"}],"version-history":[{"count":17,"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/posts\/13745\/revisions"}],"predecessor-version":[{"id":17031,"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/posts\/13745\/revisions\/17031"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/media\/13923"}],"wp:attachment":[{"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/media?parent=13745"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/categories?post=13745"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/tags?post=13745"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}