エンティティおよび関連エンティティをデータベースに保持しようとしている間に、次の例外が発生します。私がここで間違っていないことを確認何をやっている:symfony:タイプの指定されたエンティティをアイデンティティマップに追加できません
例外:
The given entity of type 'AppBundle\Entity\User'
(AppBundle\Entity\[email protected]) has no
identity/no id values set. It cannot be added to the identity map.
エンティティ:
/**
* @ORM\Entity
*/
class User
{
/**
* @ORM\Column(type="string")
*/
private $name;
/**
* @ORM\OneToOne(targetEntity="Address", inversedBy="user")
* @ORM\JoinColumn(name="address_id", referencedColumnName="id")
* @ORM\Id
*/
protected $address;
}
/**
* @ORM\Entity
*/
class Address
{
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
*/
private $id
/**
* @ORM\OneToOne(targetEntity="User", mappedBy="address", cascade={"all"}, fetch="LAZY")
*/
private $user;
}
エンティティの作成:あなたは教義エンティティのIDを指定しなければならない
$user = new User();
$address = new Address();
$address->setUser($user->setAddress($address));
$this->getDoctrine()->getManager()->persist($user);
$this->getDoctrine()->getManager()->persist($address);
$this->getDoctrine()->getManager()->flush();
あなたの投稿コードはUser :: idを表示していないようですか? – Cerad
User :: addressはプライマリキーと外部キーの両方です。 – Freid001
それは動作しません。各Doctrineエンティティには明示的なIDが必要です。 – Cerad