Doctrine orm 原则2:如何获得关联配置以创建;“不为空”;柱?
我试图让条令2创建设置为“NOTNULL”的所有列。我不希望MySQL(或其他)数据库中有任何空值。根据文档,通过条令创建的字段默认为NOTNULL。然而,这似乎并没有延伸到协会。从技术上讲,我是通过Symfony 2来实现这一点的,但问题在于我如何使用包含的原则2 以下是我正在处理的两个净化实体(在YAML中): 以及生成的create和alter table查询:Doctrine orm 原则2:如何获得关联配置以创建;“不为空”;柱?,doctrine-orm,Doctrine Orm,我试图让条令2创建设置为“NOTNULL”的所有列。我不希望MySQL(或其他)数据库中有任何空值。根据文档,通过条令创建的字段默认为NOTNULL。然而,这似乎并没有延伸到协会。从技术上讲,我是通过Symfony 2来实现这一点的,但问题在于我如何使用包含的原则2 以下是我正在处理的两个净化实体(在YAML中): 以及生成的create和alter table查询: CREATE TABLE bar (id INT AUTO_INCREMENT NOT NULL, name VARCHAR
CREATE TABLE bar (id INT AUTO_INCREMENT NOT NULL,
name VARCHAR(64) NOT NULL, PRIMARY KEY(id)) ENGINE = InnoDB;
CREATE TABLE foo (id INT AUTO_INCREMENT NOT NULL,
bar_id INT DEFAULT NULL, name VARCHAR(64) NOT NULL,
INDEX IDX_8C73652189A253A (bar_id), PRIMARY KEY(id)) ENGINE = InnoDB;
ALTER TABLE foo ADD CONSTRAINT FK_8C73652189A253A FOREIGN KEY (bar_id) REFERENCES bar(id)
我曾尝试在文档中搜索答案,尝试在manytone/bar条目中设置“nullable:false”,并为“bar_id”创建一个单独的字段(这是最接近的,但结果是实体同时使用了setbard和setBar方法,以一个问题换另一个问题).尝试将nullable设置为joinColumn的属性:
App\Entity\Foo:
type: entity
[...]
manyToOne:
bar:
targetEntity: Bar
joinColumn:
nullable: false
根据我的经验,有两种方法。 第一:实现手册中列出的双向关联。而不是在联接列中添加-nullable:false
第二:要将您的列添加到节字段中,您将能够为该联接列放置所有需要添加的选项但我在条令文档的yaml节中找不到该选项。我认为注释参考更完整:
App\Entity\Foo:
type: entity
[...]
manyToOne:
bar:
targetEntity: Bar
joinColumn:
nullable: false