FOSUserBundle с использованием собственных методов

Я новичок в Symfony, и на самом деле я пытаюсь использовать свой собственный метод из моего user.php в шаблоне. это выглядит так:

{% for image in app.user.getUserImage %}
...

Но единственное, что я получаю, это:

An exception has been thrown during the rendering of a template ("Notice: Undefined   
index: User
...

До сих пор я думал, что мой user.php (включая мои методы) расширен до FOSUserBundle, поэтому его можно использовать в шаблоне.

Должен ли я переопределять контроллер FOSUserBundle по этой причине?

@MDrollette:

из user.php:

 /**
 * Get userimage
 *
 * @return Doctrine\Common\Collections\Collection 
 */
public function getUserimage()
{
    return $this->userimage;
}

 /**
 * @ORM\OneToMany(targetEntity="UserImage", mappedBy="User")
 * @var ArrayCollection $userimage
 */
protected $userimage;

person dan_0    schedule 25.06.2012    source источник
comment
Я думаю, что здесь происходит что-то еще. Он не говорит, что не может найти метод getUserImage, он выдает другую ошибку. Здесь может понадобиться дополнительная информация для отладки, можете ли вы опубликовать содержимое getUserImage()?   -  person MDrollette    schedule 26.06.2012
comment
Пожалуйста, взгляните на мою правку   -  person dan_0    schedule 26.06.2012


Ответы (2)


Вам нужно использовать app.user.userimage, так как это имя свойства. Это автоматически вызовет геттер для свойства (getUserImage).

person Lusitanian    schedule 26.06.2012

@ORM\OneToMany(targetEntity="UserImage", mappedBy="User")

Я думаю, что mappedBy относится к имени поля в вашем объекте UserImage, а не к самому объекту User.

Ваше здоровье

person everyman    schedule 27.06.2012
comment
Большое спасибо. Я понял, что у меня опечатка. Переменная $user в user.php должна быть $User. - person dan_0; 27.06.2012
comment
И я думаю, вам нужны изображения только одного конкретного пользователя... app.user.images будет получать изображения всех пользователей. - person everyman; 27.06.2012