whileループを使用してsymfonyでフォームをループする際に問題が発生しました。ユーザーが1つの学生期間を入力し、それが登録と一致すると、フォームを再度入力して2番目の学生期間と3番目の学生期間を入力させます。私はそれを正しくやっていない、または私はエンティティ=新しい学生();それらが2つのエンティティに入るようにします。symfonyでフォーム/新しいエンティティをループする方法
public function createAction(Request $request){
$entity = new Student();
$form = $this->createCreateForm($entity);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$em = $this->getDoctrine()->getManager();
$student = $em->getRepository('AcmeDemoBundle:Payrollperiod')
->findOneBy([
'begindate'=>$form->get('beginDate')->getData(),
'lastdate'=>$form->get('lastDate')->getData()
]);
$registration = $em->getRepository('AcmeDemoBundle:Payrollweek')
->findBystartdateAndenddate(
$form->get('beginDate')->getData(),
$form->get('lastDate')->getData()
);
$counter = count($registration);
while($counter<=2) {
if ($student){
$this->addFlash('error', 'Duplicate error: Student Period already existed.');
return $this->redirect($this->generateUrl('student'));
}
elseif ($registration){
foreach ($registration as $reg) {
$reg->setStudentid($entity);
}
$em->persist($entity);
$em->flush();
return $this->redirect($this->generateUrl('payrollperiod'));
}
else{
$this->addFlash('error', ' does not match .');
return $this->redirect($this->generateUrl('student'));
}
}
return array(
'entity' => $entity,
'form' => $form->createView(),
);
}
}
私はあなたのデザインにいくつかの問題があると思っています。それはあなたが期待していることをするつもりはないと思います。 –
合意。これはウェブリクエストの仕組みではありません –