3

Symfony2 と Doctrine でアプリケーションを作成しています。必要になる可能性のあるすべてのコードは次のとおりです。

https://gist.github.com/3440325

このコード ブロックは正常に機能し、関係を正しく作成します。

        $twitter->setUser($user);
        $skype->setUser($user);

正しく動作するということは、users テーブルに行が作成され、handles テーブルに正しいユーザー ID が挿入されることを意味します。

ただし、このコード ブロックは期待どおりに動作しません。

$user->addHandle($skype);
$user->addHandle($twitter);

すべてのエントリが正常に挿入されますが、ハンドル テーブルに正しいユーザー ID を挿入できません。実際のところ、user_id 列は空のままです。

ここで何がうまくいかないのですか?何か不足していますか?私の期待は間違っていますか、どこかにバグがありますか?

-- マスヌン

4

1 に答える 1

2

双方向の 1 対多の関係があるため、参照されるエンティティを両側で同期的に設定する必要があります。

public function addHandle(\WeCodePHP\HomeBundle\Entity\Handle $handles)
{
    $this->handles[] = $handles;
    $handles->setUser($this);
}

そうしないと、doctrine はハンドルが何に属しているかを推測できません。

于 2012-08-23T19:31:56.563 に答える