我有兩個實體:門票和類別OneToOne關係,並設置實體
class tickets
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
...
/**
* @ORM\OneToOne(targetEntity="categories", mappedBy="ticket")
*/
private $categories;
public function setCategories($categories)
{
$this->categories= $categories;
}
public function getCategories()
{
return $this->categories;
}
}
class categories
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var integer $id_ticket
*
* @ORM\Column(name="id_ticket", type="integer")
*/
private $id_ticket;
...
/**
* @ORM\OneToOne(targetEntity="tickets", inversedBy="categories")
* @ORM\JoinColumn(name="id", referencedColumnName="id_ticket")
*/
private $ticket;
public function setTicket()
{
$this->ticket= $ticket;
}
public function getTicket()
{
return $this->ticket;
}
在我的票控制器,當我創建一個新的票,我想創建一個新的類別,其中tickets.id = categories.id_ticket
$ticket= new tickets();
$category= new categories();
$ticket->setCategories($categories);
$em->persist($categories);
$em->persist($ticket);
$em->flush();
我得到這個錯誤:
SQLSTATE[23000]: [Microsoft][SQL Server Native Client 10.0][SQL Server]Cannot insert explicit value for identity column in table 'categories' when IDENTITY_INSERT is set to OFF.
並嘗試做插入的是:
INSERT INTO categories(id_ticket, ... , **id**) VALUES (?, ..., **?**)
Parameters: { 1: 'null', ..., **18: 'null'** }
我在做什麼錯?我不知道它爲什麼要插入「id」。我知道這就是我得到這個錯誤的原因,但我是symfony2和doctrine的新手,我不知道如何解決它。
順便說一句,你的類應該叫'Ticket'和'Category'。 – moonwave99
謝謝。那就對了。 – xlaudrup