我有一个表格,当用户可以预订车辆在一段时间的日期。
我想做一个编辑表格,把一个司机分配给一辆预定的车。
现在我想要的是,当我必须编辑一个预订(id,datefrom,dateto,driver,vehiclue)时,我有一个下拉列表,其中列出了时段内可用的驾驶员(datefrom,dateto)。
我正在尝试使用createquery函数用choice类型和来自查询的数据构建表单。但它什么也没有。
我尝试了entitytype,但我的查询无法获得可用驱动程序列表,因为关联字段(driver\u id)位于预订表中,而不是driver表中。
架构:
预订(id、日期、日期、车辆、驾驶员……)
司机(身份证、姓名)
在我的代码下面:
$em = $this->getDoctrine()->getEntityManager();
$reservation = $em->getRepository('AppBundle:Reservation')->find($id);
$qb = $em->createQuery("SELECT c FROM AppBundle\Entity\Chauffeur c left JOIN AppBundle\Entity\Reservation r
WITH c.id = r.vehicule
and r.datefin >= :d1
and r.datedebut <= :d2 where r.id IS NULL");
$qb->setParameter('d1' , $reservation->getDatedebut() );
$qb->setParameter('d2' , $reservation->getDatefin() );
$chauffeurs = $qb->getArrayResult();
$reservation->setChauffeur($chauffeurs);
$editForm = $this->createFormBuilder($reservation)
->add('client', TextType::class)
->add('telephone', TextType::class)
->add('email', TextType::class)
->add('datedebut', DateTimeType::class, [
'widget' => 'single_text'])
->add('datefin', DateTimeType::class, [
'widget' => 'single_text'])
->add('telephone', TextType::class)
->add('chauffeur', ChoiceType::class, array(
'choices' => $chauffeurs,
'multiple' => true,
'expanded' => true,
))
->add('modifier', SubmitType::class, array('label' => 'Modifier'))
->getForm();
暂无答案!
目前还没有任何答案,快来回答吧!