Ich bin neu bei Symfony/Twig und habe Probleme beim Übergeben von Objektwerten an meine Zweigvorlagen.Symfony-Objektwerte in Zweigvorlage anzeigen
Hier einige meiner Controller-Code, der den Inhalt des Objekts zeigt:
$prevArticles = $section->getArticles();
print_r($prevArticles);
die()
Displays:
Array
(
[0] => Imagine\NewsletterBundle\Entity\Article Object
(
[id:protected] =>
[title:protected] =>
[headline:protected] =>
[link:protected] =>
[image:protected] =>
[excerpt:protected] =>
[check:protected] =>
[attachment:protected] =>
[field1:protected] =>
[field2:protected] =>
[field3:protected] =>
[magazines:protected] =>
[top_logo_advert:protected] => /uploaded_images/cece0b1859ea2b1af95f1f274620ba77.jpg
[top_logo_alt:protected] => Picture of blomange
[top_logo_link:protected] => www.google.com
)
)
So dann wie so ich mein Objekt zu meiner Zweig Vorlage übergeben:
return $this->render('ImagineNewsletterBundle:Section:'.$builder->getTemplate(), array('prevArticles' => $prevArticles));
Dann in meiner Zweig Vorlage möchte ich den Wert von 'top_logo_advert' anzeigen, aber es funktioniert nicht:
{% for article in prevArticles %}
{{ article.top_logo_advert }}
{% endfor %}
erhalte ich die Fehlermeldung:
Method "top_logo_advert" for object "Imagine\NewsletterBundle\Entity\Article" does not exist in ImagineNewsletterBundle:Section:build_advert.html.twig at line 62
Großartiges Zeug. Ich habe {{article.topLogoAdvert}} implementiert und es hat funktioniert. Also, was ist der Deal mit Twig ändern Variablennamen dann? Ich nahm an, dass top_logo_advert funktioniert hätte? –
Weil Sie mindestens PSR-0 Konventionen folgen sollten. Es bedeutet, dass Sie in erster Linie keine Funktion auf Ihrem Objekt mit einem oder mehreren Unterstrichen deklarieren sollten. Verwenden Sie stattdessen camel case-Eigenschaften und -Variable. –
Ok notiert. Ich werde zurückgehen und meine Variablen umbenennen. Prost –