我正在面对一些令人讨厌的教条问题。
我有一个文件实体和一个会议权利。
/**
*
* @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;
// ............
因此,在Twig模板中,我想执行以下操作:
{{ conference.image.path }}
但它只是不加载图像,我总是需要调用
$conference->getImage()->getPath();
在PHP中在Twig中获取正确的路径。但不应该是一样的吗?如果我不在PHP中调用它,则Twig调用只返回一个空字符串
如何实现该Doctrine自动了解Document关系?
答案 0 :(得分:2)
将您的实体类变量设为私有或受保护。 Doctrine 2依赖于它来实现它的延迟加载魔法。
http://docs.doctrine-project.org/en/latest/reference/architecture.html