0
我想更新开始日期和结束日期为具有相同名称的所有我的事件(在我的情况下,多个事件具有相同的名称)更新我的所有对象
选择事件的名称然后形成一个组合框中选择的开始和结束日期更新
updateEvents.html.twig
{{ form_start(form}}
<div>
<label for="name">Name of the event</label>
<div > {{ form_widget(form.name}} </div>
</div>
<div >
<label for="startDate ">Start date </label>
<div > {{ form_widget(form.startDate }} </div>
</div>
<div>
<label for=" EndDate ">End date </label>
<div> {{ form_widget(form. endDate}} </div>
</div>
<div>
<button type="submit" ">Update</button>
</div>
</div>
{{ form_end(form) }}
UpdateEventsType.php:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add(' name ',EntityType::class,array(
'class' => 'AppBundle: Event', 'choice_label'=>'name') )
->add(' startDate ', DateType::class, array(
'widget' => 'single_text',
// this is actually the default format for single_text
'format' => 'yyyy-MM-dd'))
->add(' endDate ', DateType::class, array(
'widget' => 'single_text',
// this is actually the default format for single_text
'format' => 'yyyy-MM-dd'))
;
}
控制器:
public function updateEventsAction(Request $request)
{
//how to recuperate $choosedName from the combobox????
$qb = $this->getDoctrine()->getManager()->createQueryBuilder();
$qb->select('e')
->from('AppBundle:Event', 'e')
->where('e.name = :choosedName')
->setParameter('name',$choosedName);
$events = $qb->getQuery()->getResult();
$form = $this->createForm('AppBundle\Form\UpdateEventsType', $events);
foreach ($events as $event) {
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$em = $this->getDoctrine()->getManager();
$event ->setStartDate ($event ->getStartDate());
$event ->setEndDate ($event ->getEndDate());
$em->flush();
return $this->redirectToRoute('app_event');
}
return $this->render('AppBundle:Event:updateEvents.html.twig', array(
'form' => $form->createView(),
));
}
}
}
什么不工作在这里吗?错误消息或您只需要知道如何获得$ choosedName? –