基本上我创建了一个使用多个实体的表单,并且从这个表单中检索到的结果我希望另一个表中的库存分成BDD。有人告诉我在存储库中进行插入(或更新)请求,并在检查提交的数据后从控制器调用它。但是在这种情况下,在这种情况下不存在持久性或刷新,因为你没有保存对应于实体的对象,就没有持久性或冲洗类似的东西,但是我到达并不是真的必须这样做。
这就是我想要存储在另一张表中的原因:
当我验证表单时,我的表单检索到的结果存放在此处(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 \ Component \ HttpFoundation \ ParameterBag类型的对象作为数组
答案 0 :(得分:1)
您正在访问数组使用的请求参数
mixed get(string $key, mixed $default = null, bool $deep = false)
$historique->setPoste($request->request->get('poste_id'));
改变其余部分,你很高兴。