Я получаю следующую ошибку, когда пытаюсь сохранить свой объект заказа:
Нарушение ограничения целостности: 1048 Столбец 'package_id' не может быть нулевым.
Упрощенные сущности:
class Order
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
protected $id;
/**
* @ORM\OneToOne(targetEntity="DeliveryPackage",inversedBy="order", cascade={"persist"})
* @ORM\JoinColumn (name="package_id", referencedColumnName="id")
*/
protected $package;
/**
* @ORM\ManyToOne(targetEntity="User",cascade={"persist"} )
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
protected $user;
public function setId($id)
{
$this->id = $id;
}
public function getId()
{
return $this->id;
}
public function setPackage($package)
{
$this->package = $package;
}
public function getPackage()
{
return $this->package;
}
}
class DeliveryPackage
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
protected $id;
/**
* @ORM\OneToOne(targetEntity="Order",mappedBy="deliverypackage",cascade={"persist"})
* @ORM\JoinColumn (name="order_id", referencedColumnName="id")
*/
protected $order;
public function setId( $id )
{
$this->id = $id;
}
public function getId()
{
return $this->id;
}
public function setOrder( $order )
{
$this->order = $order;
}
public function getOrder()
{
return $this->order;
}
}
Суть в том, что обе сущности новые. Так что у них еще нет id. Есть ли вариант, чтобы сохранить их обоих с помощью
$em->persist( $order );
$em->flush();
?