为什么null而不是空的arrayCollection?

时间:2016-01-12 17:12:40

标签: php symfony doctrine-orm doctrine symfony1

我有两个具有oneToMany关系的实体:

发布实体:

...
oneToMany:
  images:
    mappedBy: post
    targetEntity: Shop\Bundle\ManagementBundle\Entity\Image

图片实体:

...
    manyToOne:
        post:
            targetEntity: Shop\Bundle\ManagementBundle\Entity\Post
            inversedBy: images
            joinColumn:
                onDelete: cascade

当我$entity->getImages()时,我会收到null。即使在数据库中也有许多链接到帖子的图像。

我真的尽力弄清楚可能导致此类问题的原因。非常感谢您的平常帮助。

PS: 给定一个整数$id,我使用:

获取控制器中的Post实体
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('ShopManagementBundle:Post')->find($id);

我成功获得了Post实体的所有属性,除了图像。当我$entity= new Post时,getImages给出一个空的arrayCollection !!。

溶液

Get child entities returns null instead of arrayCollection object

1 个答案:

答案 0 :(得分:1)

配置中没有关于连接列的信息。尝试添加此信息。

manyToOne:
    post:
        targetEntity: Shop\Bundle\ManagementBundle\Entity\Post
        inversedBy: images
        ...
        joinColumns:
            post_id:
                referencedColumnName: id
        ...
        cascade: { }