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