我在嘗試將實體和關聯實體持久存儲到數據庫時遇到以下異常。不知道我在做什麼錯在這裏: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;
}
實體創建:
$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