教义坚持没有固定的联想

时间:2016-08-03 21:57:27

标签: doctrine-orm laravel-5

所以,我在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:我模拟了课程

1 个答案:

答案 0 :(得分:0)

你是如何生成sql架构的?

如果使用doctrine:schema:create,它应输出sql,而该列上没有not null。