在我的应用程序中我显示表格,我想创建一个功能,我选择一行,然后用表格编辑数据。
所以我在我的控制器中创建了一个动态 editAction ,如下所示:
/**
* @Route("{page}/edit/{id}", name="edition")
*/
public function editAction(Request $request, $id)
{
我得到了上一页中使用的实体
switch ($request->get('page')){
case 'route_1': $entity = 'Ent1';break; //these are just examples
case 'route_2': $entity = 'Ent2';break;
case 'route_3': $entity = 'Ent3';break;
}
由于先前选择的行的ID,我获取数据
$repository = $this->getDoctrine()
->getRepository('AppBundle:'.$entity);
$row = $repository->findOneById($id);
然后我从每个提取的字段构建表单
$form = $this->createFormBuilder()
->setMethod('POST');
foreach ($row as $fields => $value){
$form->add('"'.$fields.'"', TextType::class, array('placeholder'=>$value));
}
$form->add('submit', SubmitType::class, array('attr' => array(
'type' => 'submit', 'class' => 'btn btn-default')));
发送所有类型数据
$p = $form->getForm();
$p->handleRequest($request);
$data = $form->getData();
return $this->render('MainLayout/edit.html.twig', array('form' => $p->createView()));
}
问题是我只能从中获取提交按钮。还有其他方法可以向表单添加字段吗?我应该为每条路线制作表格吗?