2012-04-12 17 views
1

上の遅延ロードしません私は文書実体と会議entitiyを持っている教義2.Doctrine2は一対一の双方向

といくつかの厄介な問題に直面しています。

/** 
* 
* @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; 

    // ..... 

アンドカンファレンスエンティティ

// ......... 

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

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

だから私は、次の操作を実行したい小枝テンプレートで:

{{ conference.image.path }} 

しかし、それだけで私はいつも、イメージをロードしません。電話する必要があります

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

PHPはTwigで正しいパスを取得する。しかし、同じではないでしょうか? PHPで呼び出さなければ、空の文字列を返します。

Doctrineが自動的にドキュメントの関係を認識するようにするにはどうしたらいいですか?

+0

小枝でみてください '{{conference.getImage.getPath}}'ちょうどそれが必要として、それはゲッターを呼び出して確認します。 'app/dev/cache'の中で問題のテンプレート名(' AcmeBundle:Conference:view.html.twig'の検索のようなもの)を検索し、あなたのTwigテンプレートに関連する結果のテンプレートコードをチェックして、それがどのように呼び出されるかを見ることができますあなたのオブジェクト。 – Matt

答えて