【发布时间】:2012-06-19 10:18:45
【问题描述】:
我有一个这样定义的映射超类:
/** @ORM\MappedSuperclass */
abstract class BaseEntity {
/**
* @var string $id
*
* @ORM\Column(name="id", type="string", length=32, nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
protected $id;
/**
* @var datetime $dateCreated
*
* @ORM\Column(name="date_created", type="datetime", nullable=false)
*/
protected $dateCreated;
function __construct() {
$this->id = $this->generateId();
}
还有一个扩展它的子类。我得到了这个例外:
General error: 1364 Field 'id' doesn't have a default value
我在构造对象后对 getId 方法进行了回显,它返回了一个有效的字符串,所以不是这样。有趣的是,在将某些内容插入同一个表之前,我会进行查找查询。查找查询识别“id”字段,插入不识别但都识别 date_created 字段。会发生什么?
【问题讨论】:
标签: php orm symfony doctrine-orm