Symfony:不允许使用null值认为设置为nullable为true

时间:2016-04-23 14:38:00

标签: php symfony annotations doctrine

以下是我公司实体中的字段

/**
 * @var int
 *
 * @ORM\Column(name="plan", type="integer", nullable=true)
 */
private $plan;

/**
 * @var float
 *
 * @ORM\Column(name="wallet", type="float", nullable=true)
 */
private $wallet;

/**
 * @var string
 *
 * @ORM\Column(name="profpic", type="string", length=255, nullable=true)
 */
private $profpic;

/**
 * @var float
 *
 * @ORM\Column(name="tod1", type="float", nullable=true)
 */
private $tod1;

/**
 * @var float
 *
 * @ORM\Column(name="tod2", type="float", nullable=true)
 */
private $tod2;

/**
 * @var string
 *
 * @ORM\Column(name="tod3", type="string", length=255, nullable=true)
 */
private $tod3;

但是我在注册时遇到了这个错误:

  

执行'INSERT INTO公司(电子邮件,通行证,类型,名称,级别,计划,钱包,profpic,tod1,tod2,tod3)VALUES(?,?,?,?,?,?,? ,?,?,?,?)'与params [“test4@mlm.com”,“test”,“comp”,null,1,null,null,null,null,null,null]:

     

SQLSTATE [23000]:完整性约束违规:1048列'名称'   不能为空

我做错了什么? 请帮忙..

2 个答案:

答案 0 :(得分:4)

从错误

  

执行'INSERT INTO公司(电子邮件,通行证,类型,名称,级别,计划,钱包,profpic,tod1,tod2,tod3)VALUES(?,?,?,?,?,?,? ,?,?,?,?)'with params [“test4@mlm.com”,“test”,“comp”,null,1,null,null,null,null,null,null]:   SQLSTATE [23000]:完整性约束违规:1048列“名称”不能为空

字段名称是必需的。 在您上面的实体中,您忘记发布您的名称列。我确定你在名单栏中犯了一个错误 可以为空的名称列的一个例子是

/**
 * @ORM\Column(type="string" ,nullable=true)
 */
protected $name;

之后用

更新数据库架构
$ php app/console doctrine:schema:update --force

再试一次。

答案 1 :(得分:1)

您的错误是name 列{{1}}是否也在实体中设置为可空(和数据库中的NULL类型)?