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

Php 如何将表单数据保存到数据库中,php,database,forms,symfony,Php,Database,Forms,Symfony,我最近开始使用Symfony2制作一个简单的Web应用程序。主要功能是使用表单从数据库保存/获取数据。让我添加表单类型和控制器的代码: <?php class RegistroController extends Controller{ public function registrofamAction(){ $peticion = $this->get('request'); $em = $this->get('doctrine')-

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

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


谢谢大家

表单位于
$form
变量中。第一次运行控制器时,您可能处于GET模式,并使用新的
Familia
构造
$form
。 在第二次调用中,在小枝中执行
POST
后,您将
将请求数据(
$呈请
)绑定到
$form
,然后对其进行验证,如果一切正常,则使用条令实体管理器持久化
$familia

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


仔细阅读symfony这本书,我知道这是一本非常值得一读的书,但它的收益很高,因为它的描述非常好。

这里您使用request方法得到了公式,然后数据现在就在$呈请变量中(您可以显示这个变量,以查看它是如何构建的)


然后将数据“绑定”到表单对象中,如果正确,数据将被持久化

首先感谢您的关注。我最近发现了这个问题。这是因为它没有输入if($form->isValid())。现在,我正试图找出表单的问题所在使用
$form->getErrors()
获取验证错误或将其输出到小枝中。是的,最后的问题是我发送的表单无效,我将删除此问题,但谢谢大家首先感谢大家的关注。我最近发现了这个问题。这是因为它没有输入if($form->isValid())。现在我正试图找出表单的错误