集合类型新增元素关系null

Collection type new added elements relation null

我有一个实体教室,里面有很多学生实体,一个学生只属于一个教室

我的课堂形式:

$builder
    ->add('name')
    ->add('students', CollectionType::class, [
        'entry_type' => StudentType::class,
        'allow_add' => true,
        'allow_delete' => true,
    ])
;

添加新学生时,classroom students 集合中有新添加的学生,而 new students 字段 classroom 为 NULL,我在我的 classroom 实体上添加了事件级联持久化

@ORM\OneToMany(targetEntity=Student::class, mappedBy="classroom", orphanRemoval=true, cascade={"persist"})

但我仍然收到错误消息,新生的课堂字段为 NULL

Column 'classroom_id' cannot be null

有谁知道为什么吗?

实际上 symfont 不会调用你的方法 addStudent,因为选项 by_reference 默认有 true,所以要强制 symfony 使用你的方法,你必须设置 by_referencefalse.

->add('students', CollectionType::class, [
        'entry_type' => StudentType::class,
        'allow_add' => true,
        'allow_delete' => true,
        'by_reference' => false,
    ])