Symfony3从获取的行构建表单

时间:2016-07-12 09:12:09

标签: php forms symfony

在我的应用程序中我显示表格,我想创建一个功能,我选择一行,然后用表格编辑数据。

所以我在我的控制器中创建了一个动态 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()));
}

问题是我只能从中获取提交按钮。还有其他方法可以向表单添加字段吗?我应该为每条路线制作表格吗?

0 个答案:

没有答案