2013-08-08 19 views
7

Jestem nowy w Symfony/Twig i mam problemy z przekazywaniem wartości obiektów do moich szablonów gałązek.Wyświetlanie wartości obiektów symfony w szablonie gałązkowym

Oto mój kod kontrolera, który pokazuje zawartość obiektu:

$prevArticles = $section->getArticles();  
print_r($prevArticles); 
die() 

Wyświetlanie:

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 
     ) 

) 

Więc mijam mojego obiektu do mojego szablonu gałązka tak:

return $this->render('ImagineNewsletterBundle:Section:'.$builder->getTemplate(), array('prevArticles' => $prevArticles)); 

Następnie w moim szablonie gałązka chcę wyświetlić wartość "top_logo_advert", ale nie działa:

{% for article in prevArticles %} 

    {{ article.top_logo_advert }} 

{% endfor %} 

otrzymuję komunikat o błędzie:

Method "top_logo_advert" for object "Imagine\NewsletterBundle\Entity\Article" does not exist in ImagineNewsletterBundle:Section:build_advert.html.twig at line 62 

Odpowiedz

14

należy go otworzyć poprzez:

{{ article.topLogoAdvert }} lub {{ article.getTopLogoAdvert() }}

Oba rozwiązania działa. Następnym razem po prostu przypomnij, że właściwości takie jak 'my_property_1' są przekształcane w myProperty1 w silniku twig.

+0

Świetne rzeczy. Zaimplementowałem {{article.topLogoAdvert}} i zadziałało. Więc jaka jest umowa z Twigiem zmieniającym nazwy zmiennych? Zakładam, że top_logo_advert zadziałałby? –

+1

Ponieważ powinieneś przestrzegać przynajmniej konwencji PSR-0. Oznacza to, że po pierwsze nie powinno się deklarować portyki na obiekcie za pomocą jednego lub wielu podkreślników. Zamiast tego użyj właściwości i zmiennej wielkości wielbłąda. –

+0

Ok zauważyć. Wrócę i zmienię nazwę moich zmiennych. Pozdrowienia –

Powiązane problemy