所以,我在laravel中使用了doctrine并且我有一个映射类(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:我模拟了课程
答案 0 :(得分:0)
你是如何生成sql架构的?
如果使用doctrine:schema:create
,它应输出sql,而该列上没有not null。