Php 与Symfony2形式属性的多对多关系

Php 与Symfony2形式属性的多对多关系,php,symfony,Php,Symfony,我已经建立了实体之间属性的多对多关系。我很确定实体是正确的,但我正在与形式作斗争 这是我的数据库模型: 使用者 技巧 UserSkill(带有评级字段) 我的目标是创建一个具有表单的用户,并能够向该用户添加许多技能。对于每项技能,我必须添加一个等级 以下是我创建表单的方法: $builder->add('userSkill', 'collection', array( 'entry_type' => new UserSkillType(), 'by_refere

我已经建立了实体之间属性的多对多关系。我很确定实体是正确的,但我正在与形式作斗争

这是我的数据库模型:

  • 使用者
  • 技巧
  • UserSkill(带有评级字段)
我的目标是创建一个具有表单的用户,并能够向该用户添加许多技能。对于每项技能,我必须添加一个等级

以下是我创建表单的方法:

$builder->add('userSkill', 'collection', array(
  'entry_type'      => new UserSkillType(),
  'by_reference'    => false,
  'allow_add'       => true,
  'allow_delete'    => true,
  'add_button_text' => 'Add a skill'
));
下面是我得到的错误:

An exception occurred while executing 'INSERT INTO user_skill (rating, user_id, skill_id) VALUES (?, ?, ?)' with params [9, null, 3]:

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'user_id' cannot be null
你知道有什么好的链接可以告诉我怎么做,或者你有一个有效的例子吗

多谢各位


注意:我已经构建了多对多关系表单,但这是我第一次使用属性构建它。

无论出于何种原因,您的UserSkill实体都没有对该用户实体的引用。您需要检查您的代码以确定未调用$userSkill->setUser($user)的原因。您是对的。糟糕的是,我在这一行的代码中输入了一个错误。一个好的资源:@Pauletieney你能和我分享UserSkillType类的代码吗?这将非常有用。无论出于何种原因,您的UserSkill实体都没有对该用户实体的引用。您需要检查您的代码以确定未调用$userSkill->setUser($user)的原因。您是对的。糟糕的是,我在这一行的代码中输入了一个错误。一个好的资源:@Pauletieney你能和我分享UserSkillType类的代码吗?那将非常有帮助。