__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」の値は失敗します。
誰でもそれを解決する方法を知っていますか? 問題を解決するための別の同様のアプローチはありますか?