Ошибка при использовании Twig с записью Doctrine

Я пытаюсь использовать шаблоны Twig для отображения некоторых объектов, полученных с помощью Doctrine 1. Я сталкиваюсь с проблемой при доступе к отношению, объявленному с помощью hasMany в функции setUp класса User. В моем PHP-коде я могу выполнить $user->Instance без каких-либо проблем, но если я передам $user шаблону и попытаюсь выполнить user.Instance, возникнет исключение:

Doctrine_Record_Exception' with message 'Unknown method User::Instance'

Как я могу это решить?

Спасибо,

PS: использование user.get('Instance'), кажется, работает, хотя я, конечно, предпочел бы его избежать.


person nbonamy    schedule 01.12.2011    source источник


Ответы (1)


Чтобы избежать этого, вы должны определить все геттеры, которые вы хотите вызывать, в шаблоне, потому что доктрина использует «магические методы» (метод __call()), чтобы предоставить вам геттеры и сеттеры.

Например. для свойства "имя":

Twig проверяет, существует ли метод «getFirstname», но в вашей модели не определен метод «getFirstname».

Здесь вы найдете патч, сообщающий доктрине о необходимости генерировать геттеры и сеттеры: http://coolsoft.altervista.org/en/blog/2009/03/how-make-symfonydoctrine-generate-accessors

person Besnik    schedule 08.07.2012