【发布时间】:2016-08-05 20:56:15
【问题描述】:
所以,我在 laravel 中使用了学说,并且我有一个映射类(Item),我为另一个实体(Product)创建了一个属性,但是当我坚持时,我不需要在 Item 中设置 Product,因为我有具有 de id 的属性,但会导致“NOT NULL”数据库错误。
产品:
/**
* Product
*
* @ORM\Table(name="PRODUCT")
* @ORM\Entity
*/
class Product
{
/**
* @var integer
*
* @ORM\Column(name="CD_PRODUCT", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
*/
private $cdProduct;
}
物品
/**
* Item
*
* @ORM\Table(name="ITEM")
* @ORM\Entity
*/
class Item
{
/**
* @var integer
*
* @ORM\Column(name="CD_PRODUCT", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
*/
private $cdProduct;
/**
* @var DcB2bMercadoria
*
* @ORM\ManyToOne(targetEntity="App\Models\Product")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="CD_PRODUCT", referencedColumnName="CD_PRODUCT")
* })
*/
private $product;
public function __construct($cdProduct)
{
$this->cdProduct = $cdProduct;
}
}
在我的控制器中我这样做:
$item = new Item(1);
$em->persist($item);
$em->flush();
但这会导致 NOT NULL 错误。
你们能帮帮我吗?
谢谢!
PS.:我模拟类
【问题讨论】: