如何将表单数据保存到数据库中

时间:2013-07-30 07:36:46

标签: php database forms symfony

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

<?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吗?我如何管理表单信息和数据库?

谢谢大家!

2 个答案:

答案 0 :(得分:0)

表单位于$form变量中。当您第一次运行控制器时,您可能处于GET模式,并使用新的$form构建Familia。 在第二次调用时,在树枝中执行POST之后,您bind $petition $form $familia到{{1}},然后进行验证,如果一切正常,你使用doctrine实体经理坚持{{1}}。

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

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

仔细阅读symfony一书http://symfony.com/doc/current/book/index.html我知道这是一本非常值得阅读的文献,但由于描述得非常好,所以收入很高。

答案 1 :(得分:0)

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

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