【发布时间】:2015-03-25 09:35:14
【问题描述】:
我有一个在 __construct 函数上生成的具有自定义 ID(即 UUID)的实体。
namespace AppBundle\Entity;
use Rhumsaa\Uuid\Uuid;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
*/
class Person
{
/**
* @ORM\Id
* @ORM\Column(type="string")
*/
private $id;
/**
* @ORM\Column(type="string")
*/
private $name;
public function __construct()
{
$this->id = Uuid::uuid4()->toString();
}
此实体用于奏鸣曲以及项目的其他部分。在持久化和刷新它之前,我需要这个实体有 id,所以我不能使用自动增量。
所以,问题是奏鸣曲不允许我创建实体,因为它采用创建选项作为并在执行时进行编辑,因为该实体已经有一个 id,但该实体此时不存在,所以它失败了。
问题不在于生成 UUID 的库,'id' 的任何值都失败。
有人知道怎么解决吗?解决问题的另一种类似方法?
【问题讨论】:
-
你能显示一些代码来澄清你的意思吗?
-
我已经编辑了问题。
标签: php doctrine-orm uuid symfony-sonata sonata