Doctrine orm 原则2:如何获得关联配置以创建;“不为空”;柱?

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

我试图让条令2创建设置为“NOTNULL”的所有列。我不希望MySQL(或其他)数据库中有任何空值。根据文档,通过条令创建的字段默认为NOTNULL。然而,这似乎并没有延伸到协会。从技术上讲,我是通过Symfony 2来实现这一点的,但问题在于我如何使用包含的原则2

以下是我正在处理的两个净化实体(在YAML中):

以及生成的create和alter table查询:

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