Symfony2-可空注释选项不';行不通
我已将属性/列(社区)添加到现有实体(设备)中。我希望此列中的值在默认情况下为Symfony2-可空注释选项不';行不通,symfony,doctrine,Symfony,Doctrine,我已将属性/列(社区)添加到现有实体(设备)中。我希望此列中的值在默认情况下为null,因此我执行了以下操作: /** * @var integer * * @ORM\Column(name="community", type="integer", nullable=true) */ private $community = null; 之后,我用以下内容更新了数据库: php app/console doctrine:schema:update --dump-sql 但我得到了:
null
,因此我执行了以下操作:
/**
* @var integer
*
* @ORM\Column(name="community", type="integer", nullable=true)
*/
private $community = null;
之后,我用以下内容更新了数据库:
php app/console doctrine:schema:update --dump-sql
但我得到了:
ALTER TABLE device ADD community INT NOT NULL
因此,
nullable
选项似乎不起作用,因为它正在插入一个notnull
字段。我在生产环境中使用了该命令(默认)
仅使用此命令(使用--env=dev
)即可解决此问题:
尝试删除属性的“=null”,然后重新启动command@KernelFolla-谢谢您的建议,但我只是在生产环境中使用命令。只需使用
php应用程序/控制台原则即可解决:schema:update--dump sql--env=dev
。如果希望私有类属性具有默认值,则应将其放入构造函数中。例如$this->community=null
@Peter-实际上,默认值null
不需要。在Symfony 4.2bin/console原则中:schema:update--env=dev--force
。我遇到了类似的问题,其中可为NULL的字段通过diff
或正常schema:update
生成为NOTNULL。
php app/console doctrine:schema:update --dump-sql --env=dev