我正在将实体“数据”与实体“文档”关联
/**
* @ORM\ManyToOne(targetEntity="Documents")
* @ORM\JoinColumn(name="document", referencedColumnName="id", nullable=false)
*/
private $document;
如果数据未连接到任何文档,则我的数据库显示NULL。 但是,当它未连接时,我希望它为空。这是我的方法:
ls
但是我收到一条错误消息:
执行期间迁移20190405143905失败。错误异常 执行“ ALTER TABLE数据更改文档文档”时发生 INT NOT NULL':
执行'ALTER TABLE数据更改时发生异常 文档文档INT NOT NULL':
SQLSTATE [HY000]:常规错误:1832无法更改列 'document':用于外键约束'FK_ADF3F363D8698A76'
答案 0 :(得分:1)
您需要删除链接到数据的文档条目,否则您将打破外键约束。然后,您可以在数据出现内将文档ID设置为null
如果由于需要而无法删除文档条目,那么我建议您将它们迁移到临时表中,对数据库模型进行必要的更改,然后将文档条目放回原始表中>
答案 1 :(得分:-1)
@ORM\JoinColumn(name="document", referencedColumnName="id", nullable=false)
并使用
进行更改php bin/console doctrine:generate:entities BundleName
和外键不能有空值,对于NULL也是一样,即使您输入NULL值
ON DELETE = RESTRICT and ON UPDATE = RESTRICT