0

我最近开始使用 Symfony2 来制作一个简单的 Web 应用程序。主要功能是使用表单从数据库中保存/获取数据让我添加 FormType 和控制器的代码:

<?php
class RegistroController extends Controller{

    public function registrofamAction(){
        $peticion = $this->get('request');
        $em = $this->get('doctrine')->getEntityManager();

        $familia = new Familia();

        $familia->setRol($rol='fam');

        $form = $this->get('form.factory')->create(
                new FamiliaType(),
                array()
                );


        $form->setData($familia);

        if ($peticion->getMethod() == 'POST') {
            $form->bind($peticion);


            if ($form->isValid()) {

                $familia->setProgenitor1($Nombrep1);

                $em->persist($familia);
                $em->flush();
            }
        }

        return $this->render('PreditBundle:Default:registro.html.twig', array('form' => $form->createView()));
    }




}
?>

我知道这很容易,但我不清楚如何将表格返回给您。表格在$peticion? 我如何管理表单信息和数据库?

谢谢大家!

4

2 回答 2

0

表格在$form变量中。当您第一次运行控制器时,您可能处于 GET 模式并$form使用新的Familia. 在第二次调用中,在POSTtwig 中执行 a 之后,您将bind请求数据 (the $petition) 到$form,然后对其进行验证,如果一切正常,您将坚持$familia使用原则实体管理器。

您所拥有的是典型的控制器,在 symfony 书籍中得到了很好的解释:

http://symfony.com/doc/current/book/forms.html

仔细阅读 symfony 的书http://symfony.com/doc/current/book/index.html我知道这是一本值得阅读的文学作品,但它的价值很高,因为它的描述非常好。

于 2013-07-30T07:59:52.640 回答
0

在这里,您可以使用 request 方法获得公式,然后数据现在在您的 $petition 变量中(您可以显示此 var 以查看它是如何构建的)

然后你'绑定'表单对象中的数据,如果它是正确的,数据将被持久化

于 2013-07-30T08:02:24.827 回答