1
これは私のポストエンティティの一部です:symfonyの提出フォームに現在のユーザーを追加する
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="post")
* @ORM\JoinColumn(name="user", referencedColumnName="id")
*/
private $user;
とUserエンティティから:
は/**
* @ORM\OneToMany(targetEntity="Post", mappedBy="user")
*/
private $post;
私のコントローラは次のようになります。
$post = new Post();
$form = $this->createForm('FreeCycler\UserBundle\Form\PostType', $post);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$post->setUser($this->getUser());
// also tried this:
//$post->setUser($this->getUser()->getId());
$em = $this->getDoctrine()->getManager();
$em->persist($post);
$em->flush($post);
return $this->redirectToRoute('my_post_show', array('id' => $post->getId()));
}
投稿はormに保存されますが、ユーザーは空またはnullです。しかし、$this->getUser()
はヌルではなく、ダンプすればユーザーオブジェクトを表示します。
非常に奇妙な、ラインを移動してみ '$ポスト> SETUSER(の$ this - >のgetUser());' $ポスト=新しいポスト() 'オブジェクトの作成後に、' – Matteo
は、私が試してみましたこれは同じ問題を抱えています。 – shaNnex
'Post :: setUser()'メソッドを表示できますか? 'name =" user "を' name = "user_id" 'にリネームし、DBスキーマを更新しようとします。 – yceruto