无法在树枝模板中渲染一些变量

时间:2013-11-30 16:30:54

标签: php zend-framework2 twig

我使用ZF2编写了我的应用程序。 我有2个模块:邮件和文件。 呈现来自邮件模块的所有变量。无法渲染对象文件。 当我{{ dump(mail.file) }}时,它会返回NULL。但是,如果我{{ dump() }},文件对象确实存在:

array (size=2)
  'mail' => 
    object(Mail\Entity\Incoming)[453]
      protected 'id' => int 8
      protected 'inNumber' => int 1
      protected 'inDate' => int 1320948000
      protected 'outNumber' => string '1' (length=1)
      protected 'outDate' => int 1320948000
      protected 'sheetsNumber' => int 1
      protected 'teaser' => string '' (length=0)
      protected 'file' => 
        object(File\Entity\File)[455]
          protected 'id' => int 5
          protected 'origName' => string 'eRa33cHgofw.jpg' (length=15)
          protected 'curName' => string 'eRa33cHgofw.jpg' (length=15)
          protected 'size' => int 284192
          protected 'type' => string 'image/jpeg' (length=10)
          protected 'uploaded' => int 1385736080
      protected 'sender' => 
        object(Mail\Entity\Sender)[457]
          protected 'id' => int 1
          protected 'name' => string 'ООО Ромашка' (length=21)
      protected 'type' => 
        object(Mail\Entity\Type)[459]
          protected 'id' => int 1
          protected 'name' => string 'Информация' (length=20)
      protected 'created' => int 1385736080
  'namespace' => string 'FileEntityFile' (length=14)

有人帮助我吗?

1 个答案:

答案 0 :(得分:1)

file类中的Mail\Entity\Incoming属性为protected,因此只能从类本身或Mail\Entity\Incoming类的任何子级中访问它。这就是twig无法访问该属性的原因。

创建属性public或在Mail\Entity\Incoming类中创建一个访问器函数。