symfony2表单未显示

symfony2表单未显示,symfony,symfony-2.1,symfony-2.2,Symfony,Symfony 2.1,Symfony 2.2,我正在学习symfony2,我在controller中创建了一个表单,如下所示。 控制器文件名为DefaultController.php namespace Banner\TestBundle\Controller; use Banner\TestBundle\Entity\Contact; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Banner\TestBundle\Entity\Task; use Symf

我正在学习symfony2,我在controller中创建了一个表单,如下所示。 控制器文件名为DefaultController.php

namespace Banner\TestBundle\Controller;

use Banner\TestBundle\Entity\Contact;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Banner\TestBundle\Entity\Task;
use Symfony\Components\HttpFoundation\Request;

class DefaultController extends Controller
{
public function newAction(Request $request)
{

 echo "The controller is called ";
 $task = new Task();
 $task->setTask("Write a blog Post ");
 $task->setDueDate(new DateTime('tomorrow'));

 $form =  $this->createFormBuilder($task)
            ->add('task','text  ')
            ->add('duedate','date')
            ->getForm();
    return $this->render('BannerTestBundle:default:zoo.html.twig',array('form'=>$form->createView()));

}
}
我的路由文件如下。 路由.yml

task_new:
pattern:  /task/{request}
defaults: { _controller: BannerTestBundle:Default:new}
zoo.html.twig文件如下所示

{% extends '::page.html.twig' %}
    {% block title %}The Zoo{% endblock %}

    {% block content %}

        <form action="{{ path('task_new') }}" method="post" {{ form_enctype(form) }}>
                {{ form_widget(form) }}
            <input type="submit">   
        </form> 

    {% endblock %}
{%extends'::page.html.twig%}
{%block title%}动物园{%endblock%}
{%block content%}
{{form_widget(form)}
{%endblock%}
当我在url中传递“task/GET”时,它将显示“请求不存在”。错误500'


我主要想做的是,当我传递url时,将调用zoo.html.twig。我想在zoo.html.twig中显示该表单。

您不需要将
$request
传递给您的操作,也不需要将其放在路线中。请求对象在全局上下文中可用。所以

task_new:
    pattern:  /task-new
    defaults: { _controller: BannerTestBundle:Default:new}
你可以这样离开

public function newAction(Request $request)
或者

public function newAction()
和这样的访问请求对象

$request  = $this->getRequest();

路由文件未正确缩进,因此yaml无法正确解析。尝试:

此外:

  • 用这种方式覆盖请求可能是个坏主意
  • 您似乎没有对控制器中的请求执行任何操作
  • task_new:
        pattern:  /task/{request}
        defaults: { _controller: BannerTestBundle:Default:new}