Doctrine,当我创建元素时,我需要在同一个表的其他字段中使用id的值

时间:2014-10-15 14:07:15

标签: symfony doctrine-orm

我有这堂课:

Article (id, code)

当我创建我的文章时,我需要在字段代码中添加id。在我的数据库中,我需要:

(id, code)

1, ARTICLE_1

2, ARTICLE_2

实际上,字段代码等于ARTICLE + ID,我尝试用以下内容填写此字段:

public function __construct() {

    $this->code = "ARTICLE_" . $this->getId();

}

但是当我添加我的文章时,不生成Id并且函数getId不返回任何内容。我尝试测试postPersist()功能,但这并不成功。

对此有好的做法吗?

由于

Djoo

2 个答案:

答案 0 :(得分:0)

在PHP中,您无法使用" +"运算符将字符串与变量连接,但是"。"符号

请改为尝试:

$this->code = "ARTICLE_" . $this->getId();

答案 1 :(得分:0)

这是解决方案:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html#lifecycle-callbacks

我将注释@ORM \ HasLifecycleCallbacks添加到我的实体,我有一个功能:

/** @ORM\PostPersist */
public function doStuffOnPostPersist()
{
    $this->setCode('ARTICLE_' . $this->getId());

}

有了这个解决方案,我有了id,因为我已经坚持了。

感谢。