我有一个由多对多关系相关的两个实体,以及具有实体字段类型的表单构建器,但所有这些都没有保存到数据库中。这是我的文件的链接。有人可以帮助我。我的错误在哪里?
链接:
答案 0 :(得分:1)
尝试在表单中将'by_reference'
设置为false:
->add('tags', 'entity', array(
'label' => 'Tags',
'class' => 'GeekhubMainBundle:Tag',
'property' => 'tagName',
'empty_value' => 'Choose a tag',
'multiple' => true,
'expanded' => false,
'by_reference' => false, // Makes sure that tags
// are actually added to your post
'query_builder' => function (TagRepository $repository) {
return $repository->findEnabledTags();
}
)
以下是您在Symfony Cookbook中尝试实现的示例:http://symfony.com/doc/current/cookbook/form/form_collections.html
有关by_reference
的一些信息:http://symfony.com/doc/current/reference/forms/types/collection.html#by-reference
答案 1 :(得分:0)
像这样更改您的实体:
标记实体:
/**
* @param Post $post
* @return $this
*/
public function addPost(Post $post)
{
$post->addTag($this);
$this->posts->add($post);
return $this;
}
发布实体:
/**
* @param Tag $tag
* @return $this
*/
public function addTag(Tag $tag)
{
$tag->addPost($this);
$this->tags->add($tag);
return $this;
}