Symfony2实体属性被忽略

时间:2016-01-26 12:59:03

标签: php symfony doctrine-orm entity

我与Symfony2陷入了一种奇怪的行为。

我有一个代表我的应用程序中的文档的实体。该实体与具有ManyToOne关系的另外两个实体相关联 这是班级:

实体\ Document.php

namespace Acem\APPBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * @ORM\Entity
 * @ORM\Table(name="documents")
 */
class Document
{
    /** 
     * @ORM\Id()
     * @ORM\ManyToOne(targetEntity="Resource", inversedBy="documents") 
     * @ORM\JoinColumn(name="resource_id", referencedColumnName="id", nullable=false) 
     */
    protected $resource;

    /** 
     * @ORM\Id()
     * @ORM\ManyToOne(targetEntity="User", inversedBy="documents") 
     * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false) 
     */
    protected $owner;

    /**
     * ORM\Column(type="boolean")
     */
    protected $enabled;

    /**
     * ORM\Column(type="string")
     */
    protected $title;

    /**
     * ORM\Column(type="int")
     */
    protected $value;

}

我的问题是,学说只生成一个包含两列resource_iduser_id的表,但其他字段完全被忽略。
当我使用doctrine:generate:entities时会发生同样的事情,getter / setter仅针对具有ManyToOne关系的两个属性生成,但其他属性似乎不存在于Doctrine中。

什么可能导致这种奇怪的行为以及如何解决它?

谢谢

1 个答案:

答案 0 :(得分:2)

为每个字段引用添加Leg.objects.all().order_by('date').prefetch_related( Prefetch('cyclist', queryset=Cyclist.objects.filter(id=cyclist.id), to_attr='related_cyclist') ) #this way every leg will have a attr `related_cyclist` #which will be whether an empty list or a list with one element - your cyclist object. for l in legs: print l.related_cyclist 符号。它看起来像@