如何将我的实体字段设置为 "nullable=false"?
How can I set my entity field to "nullable=false"?
我正在连接我的实体 "data" 和我的实体 "documents"
/**
* @ORM\ManyToOne(targetEntity="Documents")
* @ORM\JoinColumn(name="document", referencedColumnName="id")
*/
private $document;
如果数据没有连接到任何文件,那么我的数据库显示为NULL。
但我希望它在未连接时为空。这是我的方法:
/**
* @ORM\ManyToOne(targetEntity="Documents")
* @ORM\JoinColumn(name="document", referencedColumnName="id", nullable=false)
*/
private $document;
但我收到一条错误消息:
Migration 20190405143905 failed during Execution. Error An exception
occurred while executing 'ALTER TABLE data CHANGE document document
INT NOT NULL':
An exception occurred while executing 'ALTER TABLE data CHANGE
document document INT NOT NULL':
SQLSTATE[HY000]: General error: 1832 Cannot change column
'document': used in a foreign key constraint 'FK_ADF3F363D8698A76'
您需要删除链接到您的数据的文档条目,否则您将破坏外键约束。然后你可以在数据发生
中将文档ID设置为空
如果您因为需要文档条目而无法删除它们,那么我建议您将它们迁移到临时 table,对数据库模型进行必要的更改,然后将文档条目放回变成原来的table
我正在连接我的实体 "data" 和我的实体 "documents"
/**
* @ORM\ManyToOne(targetEntity="Documents")
* @ORM\JoinColumn(name="document", referencedColumnName="id")
*/
private $document;
如果数据没有连接到任何文件,那么我的数据库显示为NULL。 但我希望它在未连接时为空。这是我的方法:
/**
* @ORM\ManyToOne(targetEntity="Documents")
* @ORM\JoinColumn(name="document", referencedColumnName="id", nullable=false)
*/
private $document;
但我收到一条错误消息:
Migration 20190405143905 failed during Execution. Error An exception occurred while executing 'ALTER TABLE data CHANGE document document INT NOT NULL':
An exception occurred while executing 'ALTER TABLE data CHANGE document document INT NOT NULL':
SQLSTATE[HY000]: General error: 1832 Cannot change column 'document': used in a foreign key constraint 'FK_ADF3F363D8698A76'
您需要删除链接到您的数据的文档条目,否则您将破坏外键约束。然后你可以在数据发生
中将文档ID设置为空如果您因为需要文档条目而无法删除它们,那么我建议您将它们迁移到临时 table,对数据库模型进行必要的更改,然后将文档条目放回变成原来的table