【发布时间】:2016-01-26 12:59:02
【问题描述】:
我在 Symfony2 中遇到了一个奇怪的行为。
我有一个实体代表我的应用程序中的文档。此实体通过多对一关系链接到其他两个实体。
这是课程:
实体\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_id 和 user_id 的表,但其他字段被完全忽略。
当我使用doctrine:generate:entities 时也会发生同样的事情,getter / setter 仅针对具有 ManyToOne 关系的两个属性生成,但其他属性似乎不存在于 Doctrine。
什么可能导致这种奇怪的行为以及如何解决它?
谢谢
【问题讨论】:
-
在做某事之前,您是否尝试过调用 app/console 学说:缓存:清除元数据?它可能与学说缓存相关......
-
是的,但它不会改变任何东西。
-
噢,请在
ORM\Column之前为每个字段添加@符号
标签: php symfony doctrine-orm entity