2012-04-12 5 views
1

я столкнулся некоторые раздражающие проблемы с доктриной 2.Doctrine2 не ленивые нагрузки на 12:59 двунаправленной

У меня есть объект документа и конференц-entitiy.

/** 
* 
* @author klauss 
* 
* @ORM\Entity 
* @ORM\HasLifecycleCallbacks 
*/ 
class Document 
{ 
    /** 
    * @ORM\Id 
    * @ORM\Column(type="integer") 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    public $id; 

    /** 
    * @ORM\Column(type="string", length=255, nullable=true) 
    */ 
    public $path; 

    /** 
    * @ORM\OneToOne(targetEntity = "Conference", mappedBy = "image") 
    */ 
    protected $conference; 

    /** 
    * @Assert\File(
    *  maxSize="4M", 
    *  maxSizeMessage="Allowed maximum size is {{ limit }}" 
    *) 
    */ 
    public $file; 

    // ..... 

И Конференция Entity

// ......... 

    /** 
    * Uploaded image. 
    * 
    * @ORM\OneToOne(targetEntity = "Document", inversedBy = "conference") 
    * @ORM\JoinColumn(name = "image", nullable = true, referencedColumnName = "id") 
    */ 
    protected $image; 

// ............ 

Так в шаблоне Twig Я хотел бы сделать следующее:

{{ conference.image.path }} 

Но это просто не загружает изображение, я всегда необходимо позвонить по телефону

$conference->getImage()->getPath(); 

в PHP, чтобы получить правильный путь в Twig. Но разве это не должно быть одинаково? Если я не назову его в PHP, вызов Twig просто возвращает пустую строку

Как я могу достичь этой Доктрины, которая автоматически осознает отношение документа?

+0

Try '{{conference.getImage.getPath}}' в Twig просто чтобы быть уверенным, что вызывает добытчиками, как это должно быть. Вы также можете выполнить поиск в 'app/dev/cache' для имени вызывающего шаблона (что-то вроде поиска' AcmeBundle: Conference: view.html.twig') и проверить полученный код шаблона, связанный с вашим шаблоном Twig, чтобы увидеть, как он вызывает ваш объект. – Matt

ответ

2

Сделайте свои переменные класса сущности частными или защищенными. Доктрина 2 полагается на это, чтобы работать, это ленивая магия загрузки.

http://docs.doctrine-project.org/en/latest/reference/architecture.html

+0

Это сработало для меня. Полностью упустил этот факт. Спасибо! –

Смежные вопросы