2016-10-15 5 views
0

私はsymphony 3フレームワークを学んでおり、基本的な問題に遭遇しましたが、解決策がまだ見つかりませんでした。ユーザオブジェクトをSymfony 3フォームに自動的に渡すには?

私はオーダーフォームを持っています。データクラスはオーダーオブジェクトに設定されています。オーダーオブジェクトは、対応するテーブルにORMマッピングされています。私は、ユーザー、商品、お支払いオブジェクトに関係を設定しています。私のフォームでは、ユーザーは製品と支払いを選択することができ、これまでのところうまくいくでしょう。現在のユーザーオブジェクトをフォームに渡す方法はわかりませんので、検証します。私はフォームフィールドをユーザーのために置いてはいけません。なぜなら、それは常に現在のユーザーオブジェクトであり、ユーザーは何とかそれを見たり変更することができないべきだからです。

ユーザリレーションをnullにすることができるほか、フォームの検証後に永続化する以外にオプションがありますか?データベースでこのフィールドをオプションにするのはベストプラクティスではないようです。

+0

私は[この](http://symfony.com/doc/current/form/dynamic_form_modification.html#form-events-user-data)役立つことを願ってProductエンティティを永続化する前にユーザエンティティを設定します – Matteo

答えて

0

この場合、あまりにも難しく考える必要はありません。ただ、

if ($form->isSubmitted() && $form->isValid()) 
{ 
     $em = $this->getDoctrine()->getManager(); 

     $product->setUser($this->getUser()); 

     $em->persist($product); 
     $em->flush(); 

     return $this->redirectToRoute('some_route'); 
} 
関連する問題