2013-02-22 2 views
4

symfony2를 배우고 있으며 컨트롤러에 하나의 양식을 작성했습니다. DefaultController.phpsymfony2 양식이 표시되지 않습니다.

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())); 

} 
} 

내 라우팅 파일과 제어 파일은 다음과 같습니다. routing.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 %} 

가 존재하지 않는 '요청을 표시합니다 내 URL에 "작업을/GET". 오류 500 '.

내가 기본적으로하고 싶은 것은 zoo.html.twig가 호출 될 url을 전달할 때입니다. zoo.html.twig에 양식을 표시하고 싶습니다.

답변

6

$request을 작업에 전달할 필요가 없으며 경로에 배치 할 필요가 없습니다. 요청 객체는 전역 컨텍스트에서 사용할 수 있습니다. 그래서

task_new: 
    pattern: /task-new 
    defaults: { _controller: BannerTestBundle:Default:new} 

당신은 당신의 라우팅 파일이 제대로되지

public function newAction(Request $request) 

또는이

$request = $this->getRequest(); 
+0

두 가지 가능한 요청의 예를 보려면 +1 – DonCallisto

+0

해결책 고맙습니다. –

1

같은

public function newAction() 

및 액세스 요청 개체가 이런 식으로 둘 수 들여 쓰기 때문에 yaml은 안됩니다. 제대로 구문 분석하지 마십시오. 시도 : 또한

task_new: 
    pattern: /task/{request} 
    defaults: { _controller: BannerTestBundle:Default:new} 

:

  1. 그것은 아마도 나쁜 생각을 요청하기
  2. 당신은 컨트롤러
  3. 에 요청과 함께 어떤 일을 할 표시하지 않는 방법을 재정의