0

リレーションシップを持つ 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();

そして、Article を User に追加します。

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

記事は DB に保存されますが、フィールドにデータがありません: author_id

テーブルに保存する際に自動的にユーザーに記事を追加するときの関係の作り方 記事は になりますauthor_id

4

1 に答える 1

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();
于 2012-06-26T08:46:04.383 に答える