Symfony2表单呈现为空

时间:2014-04-08 23:56:49

标签: forms symfony render

我刚刚开始尝试使用Symfony2.4.2构建表单并且非常令人沮丧。我已经成功地构建了第12章中的示例。我还尝试在另一个项目中构建基本相同的表单,在另一个包中,并且似乎总是以空表格结束:

<html>
<head></head>
<body>
<form action="" method="post" name="form"> </form>
</body>
</html>

创建此代码的代码:

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use DMV\form3Bundle\Entity\Task;
use Symfony\Component\HttpFoundation\Request;

class DefaultController extends Controller
{
    public function newAction(Request $request)
    {
        // create a task and give it some dummy data for this example
        $task = new Task();
        $task->setTask('Write a blog post');
        $task->setDueDate(new \DateTime('tomorrow'));

        $form = $this->createFormBuilder($task)
            ->add('task', 'text')
            ->add('dueDate', 'date')
            ->add('save', 'submit')
            ->getForm();

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

    }
}

new.html.twig:

{{ form(form) }}

我试过深入研究&#34; $ form&#34;在&#34;断点处返回$ this-&gt;渲染......&#34;假设要渲染表单的行,我在结构中看到表单元素文本,但它是一个非常大而复杂的结构,我不确定我应该看到什么。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您只需在new.html.twig模板中呈现表单,例如:

{# src/Acme/TaskBundle/Resources/views/Default/new.html.twig #}

{{ form(form) }}

但是如果你使用Symfony版本&lt; 2.3 ,请尝试使用以下内容:

{# src/Acme/TaskBundle/Resources/views/Default/new.html.twig #}
<form action="{{ path('task_new') }}" method="post" {{ form_enctype(form) }}>
    {{ form_widget(form) }}

    <input type="submit" />
</form>