相关实体不保存到数据库Symfony2

时间:2014-12-18 09:45:22

标签: symfony orm doctrine-orm entity entity-relationship

我有一个由多对多关系相关的两个实体,以及具有实体字段类型的表单构建器,但所有这些都没有保存到数据库中。这是我的文件的链接。有人可以帮助我。我的错误在哪里?

链接:

tag entity

post entity

contorller action

form_builder

2 个答案:

答案 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;
}