2015-10-23 4 views
0

У него есть два объекта в PhotoBundle, один - объект Photo, другой - объект FileManaged. они имеют отношение ОДИН-ОДИН.Symfony 2 - Как напечатать свойства в веточке?

Hy\PhotoBundle\Entity\Photo: 
type: entity 
oneToOne: 
    file_managed: 
     targetEntity: FileManaged 
     mappedBy: photo 
     joinColumn: 
     name: photo 
     referencedColumnName: fid 

Hy\PhotoBundle\Entity\FileManaged: 
type: entity 
oneToOne: 
    photo: 
     targetEntity: Photo 
     joinColumn: 
     name: fid 
     referencedColumnName: photo 

Я хочу напечатать uri в файле index.html.twig файла, как его напечатать?

Моего код:

{% for entity in pagination %} 
{{ entity.title }} <!--Ok--> 
{{ entity.file_managed.uri }} <!--Error-->{% endfor %} 

и выводит сообщение об ошибке:

Method "file_managed" for object "Hy\PhotoBundle\Entity\Photo" does not exist in HyPhotoBundle:Photo:index.html.twig at line 25 

Что я делаю не так?

ПИК использует божья коровка дамп:

{{ entity|ladybug_dump }} 

http://i.stack.imgur.com/kxu8X.png

+0

У вас есть функция getFile_managed() в вашей PhotoEntity? – scoolnico

+0

try fileManaged вместо file_managed, если это объект, а не массив – coder4show

+0

Зачем нужна функция getFile_managed()? он может отображать данные, используя {{entity | ladybug_dump}}. – Brian

ответ

0

Ваш PhotoBundle \ Entity \ Фото объект должен выглядеть следующим образом. Обратите внимание, что это не полностью сфокусировано, просто соответствующие методы.

class Photo{ 

    protected $id; 

    protected $file_managed; 

    public function setFileManaged($file) 
    { 

     $this->file_managed = $file; 

     return $this; 

    } 

    public function getFileManaged() 
    { 

     return $this->file_managed; 

    } 

} 

При этом вы должны быть в состоянии получить доступ к entity.fileManaged.url или любой другой вы определили в вашей организации в шаблонах прута.