Symfony2,Doctrine数据持久性

时间:2012-06-26 08:35:24

标签: doctrine-orm relationship

我有5个有关系的表格。

表用户和文章有关系:

在用户中:

/**
 * @ORM\OneToMany(targetEntity="Article", mappedBy="author")
 *      
 * @var ArrayCollection $articles
 */
protected $articles;

在文章中:

/**
 * @ORM\ManyToOne(targetEntity="User", inversedBy="articles")
 *
 */
protected $author;

我创建新文章:

$article = new Article();
$article->setTitle("title");
$article->setText("Text test");
$article->setType("image");
$em->persist($article);
$em->flush();

我向用户添加文章:

$user->addarticle($article);
$em->persist($user);
$em->flush();

文章保存在数据库中,但在字段上没有任何数据:author_id

当我向用户添加文章以自动保存在表格文章author_id中时如何建立关系。

1 个答案:

答案 0 :(得分:0)

尝试此架构。 在用户中:

/**
 * @ORM\OneToMany(targetEntity="Article", mappedBy="author")
 */
protected $articles;

文章:

/**
 * @ORM\ManyToOne(targetEntity="User", inversedBy="articles")
 * @ORM\JoinColumn(name="author_id", referencedColumnName="id")
 */
protected $author;

生成实体,并更新架构。

$article = new Article();
$article->setTitle("title");
$article->setText("Text test");
$article->setType("image");
$article->setAuthor($user);
$em->persist($article);
$em->flush();