2017-10-10 82 views
0

在我的数据库我有2个表:形成一对多的关系

课程表:

  • ID(PK)
  • 名(为varchar)
  • 描述(文本)

Session表:

  • ID(PK)
  • 日期(日期时间)
  • COURSE_ID(FK以ID从课程表)

在我会话类型buildForm功能如下:

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
     ->add('date'); 
} 

The 在我CourseType buildForm功能如下:

$builder 
    ->add('name') 
    ->add('description') 
    ->add('foreknowledge') 
    ->add('teacher') 
    ->add('sessions', CollectionType::class, array(
     'entry_type' => SessionType::class, 
     'entry_options' => array('label' => false), 
     'allow_add' => true, 
     'by_reference' => false, 
     'allow_delete' => true, 
    )) 

我在我的树枝模板形式如下:

{{ form_start(form) }} 
    {{ form_widget(form) }} 

    <input type="submit" value="Create" /> 
{{ form_end(form) }} 

但没有什么是在 “会话” 中。我希望能够在我的课程中创建多个会话。是否有捷径可寻?

UPDATE:

当我尝试保存我的课程,做一个转储之前我救我得到这个:

enter image description here

我的会话被保存,但他们没有联系当然。这是怎么回事?

enter image description here

+0

我想你的意思是“ManyToMany”关系,导致“OneToMany”不是逻辑(你的数据库设计)在这种情况下:每个会话都可以有很多课程,并且每个课程可以在多个会话中存在 –

回答

1

这是可能的,你缺少一些JavaScript,这是非常有据可查here

而不是从这里的文档页复制粘贴,你可以阅读它,并询问你是否需要任何帮助。

+0

@nielsv在你的课程实体你有addSession方法?你转发会话变种?在该方法中,执行'$ session-> setCourse($ this)'并且应该解决它 – kunicmarko20