2013-08-08 47 views
7

Im new to Symfony/Twig và đang gặp sự cố khi truyền các giá trị đối tượng cho mẫu của tôi.Hiển thị giá trị đối tượng symfony trong mẫu twig

Dưới đây là một số mã điều khiển của tôi cho thấy nội dung của đối tượng:

$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 
     ) 

) 

Vì vậy, sau đó tôi vượt qua đối tượng của tôi để mẫu cành lá của tôi như vậy:

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

Sau đó, trong mẫu cành của tôi, tôi muốn hiển thị giá trị của 'top_logo_advert' nhưng không hoạt động:

{% for article in prevArticles %} 

    {{ article.top_logo_advert }} 

{% endfor %} 

Tôi nhận được thông báo lỗi:

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

Trả lời

14

Bạn phải truy cập nó thông qua:

{{ article.topLogoAdvert }} hoặc {{ article.getTopLogoAdvert() }}

Cả hai giải pháp hoạt động. Lần tới, chỉ cần nhắc nhở rằng các thuộc tính như 'my_property_1' được chuyển đổi thành myProperty1 trong công cụ xoay vòng.

+0

Công cụ tuyệt vời. Tôi đã triển khai {{article.topLogoAdvert}} và nó đã hoạt động. Vì vậy, những gì đối phó với Twig thay đổi tên biến sau đó? Tôi cho rằng top_logo_advert có thể đã hoạt động? –

+1

Bởi vì bạn phải tuân theo ít nhất là các quy ước PSR-0. Nó có nghĩa là ở nơi đầu tiên bạn không phải khai báo porperty trên đối tượng của bạn với một hoặc nhiều gạch dưới (s). Thay vào đó hãy sử dụng thuộc tính trường hợp lạc đà và biến. –

+0

Ok đã lưu ý. Tôi sẽ quay lại và đổi tên các biến của tôi. Chúc mừng –

Các vấn đề liên quan