2017-04-19 33 views
0

基本的には、複数のエンティティを使用するフォームを作成し、このフォームから取得した結果を別のテーブルの在庫をBDDに分割したいとします。リポジトリに挿入(または更新)リクエストを行い、送信されたデータをチェックした後、コントローラから呼び出すように指示されました。しかし、この場合、エンティティに対応するオブジェクトを保存しないので、このような場合は永続化またはフラッシュされませんが、そのようなものは存在しないか、フラッシュされませんが、到着します。私は自分のフォームを検証する場合Symfony - 別のエンティティにデータを保存

enter image description here

、私のフォームによって取得私の結果がここにストックされる(ID:6)私は別のテーブルに格納する理由です

これが私ですコード:

public function testAction(Request $request){ 
    $poste = new Poste(); 
    $formPoste = $this->get('form.factory')->create(PosteType::class, $poste); 


    $historique = new Historique_employer(); 


    if ($request->isMethod('POST')&& $formPoste->handleRequest($request)->isValid()) { 

     $historique->setPoste($request->request['poste_id']->getData()); 
     $historique->setCity($request->request['City']->getData()); 
     $historique->setEmployer($request->request['Employer']->getData()); 
     $historique->setTemps($request->request['Temps']->getData()); 


     dump($poste);die(); 

     $em = $this->getDoctrine()->getManager(); 
     $em->persist($poste); 
     $em->persist($historique); 
     $em->flush(); 
    } 



    return $this->render(':stat:teste.html.twig', array(
     'poste' => $formPoste->createView(), 
     'historique' => $historique, 
     )); 

} 

と、私はこのエンティティで私のデータを格納したいと思います:

class Historique_employer 
{ 
    /** 
    * @var int 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 


    /** 
    * @var Poste 
    * @ORM\OneToOne(targetEntity="Poste") 
    */ 
    private $poste; 


    /** 
    * @var City 
    * @ORM\OneToOne(targetEntity="City") 
    */ 
    private $city; 


    /** 
    * @var Temps 
    * @ORM\OneToOne(targetEntity="Temps") 
    */ 
    private $temps; 


    /** 
    * @var Employer 
    * @ORM\OneToOne(targetEntity="Employer") 
    */ 
    private $employer; 

が、私はこのエラーメッセージ持っているすべてやるとき:あなたは

配列としてタイプのSymfony \コンポーネント\ HttpFoundation \ ParameterBagのオブジェクトを使用することはできません

答えて

1

Symfony 2.8 ParameterBag

ですが配列のようなリクエストパラメータへのアクセス mixed get(string $key, mixed $default = null, bool $deep = false)

$historique->setPoste($request->request->get('poste_id')); 

残りを変更してください。

+0

ありがとうございますが、私のフィールドはテーブル内でNULLです –

+0

どうすればいいのですか? –

関連する問題