2013-04-06 4 views
0

이전에 본 적이없는 Symfony 2와 관련된 문제가있는 것처럼 보입니다.매개 변수 추가시 symfony 2 경로 오류

매개 변수를 사용하지 않고 완벽하게 작동하는 경로가있어서 컨트롤러까지 연결하고 올바른보기를 표시합니다. 나는 다음과 같이 단일 매개 변수를 취하도록 경로를 업데이트 :

# Note routing 
    gibbo_dummy_notes_Add: 
     pattern: /notes/add/{notebook} 
     defaults: { _controller: GibboDummyBundle:Note:add, notebook: 0} 
     requirements: 
       _method: POST|GET 

을 그러나 지금 시도하고이 경로 I 오류 The controller must return a response (null given). Did you forget to add a return statement somewhere in your controller?를 얻을 수 notes/add/test에 액세스하는 경우. 매개 변수를 제거하면 완벽하게 작동합니다 notes/add.

이 설정은 내 앱에서 매개 변수를 사용하는 나머지 경로와 정확히 동일합니다.

컨트롤러의 작업이 확실히 응답 개체를 반환합니다. die('test');을 작업의 맨 위에 놓고 URL에서 매개 변수를 제거하면 die 문에 도달하고 'test'가 표시되지만 URL에 매개 변수를 추가하면 오류가 표시되어 컨트롤러에 명확하게 도달하지 못합니다 또는 매개 변수를 포함 할 때 조치를 취할 수 있지만 경로가 올바르게 설정되었다고 말할 수있는 한 정상 경로를 얻지 못하면 URL에 문제가 있는지를 예상 할 수 있습니다.

임 dev에 환경에서 그것을 실행하고 나는 사람이 내가 잘못 일을 할 수있는 일에 대해 되거 수

public function addAction($notebook) 
{ 

    $pageTitle = 'Note'; 


    $form = $this->createForm(new NoteType(), null, array(
     'validation_groups' => array('add') 
    )); 

    $request = $this->getRequest(); 

    if ($request->isMethod('POST')) { 
     $form->bind($request); 

     if ($form->isValid()) { 

      /** @var $em \Doctrine\ORM\EntityManager */ 
      $em = $this->getDoctrine()->getManager(); 

      /** @var $note Note */ 
      $note = $form->getData(); 
      $note->setNotebook(); 

      $em->persist($note); 
      $em->flush(); 

      return $this->redirect($this->generateUrl('gibbo_dummy_note_View')); 
     } 
    } 

    return $this->render('GibboDummyBundle:Note:new.html.twig', array(
     'pageTitle' => $pageTitle, 
     'form_add' => $form->createView(), 
     'selected' => 'codebooks' 
    )); 


} 

처럼 보이는 NoteController 컨트롤러 내부의 다른 브라우저/삭제 캐시 등 조치를 시도?

+2

내 생각이 이상한 이유로 다른 경로를 일치 할 것이다. 프로파일 러에서 라우터와 일치하는 경로를 확인할 수 있습니다! –

+0

루트 디렉토리에'php app/console router : debug' 라우트를 찾아서 올바른 위치로 이동했는지 확인하십시오. –

+0

응답 라우터에 감사드립니다 : debug는 이상한 것을 보여주지 못했습니다 : gibbo_codekeeper_notes_Add POST | GET/notes/add/{notebook } –

답변

0

gibbo_dummy_note_View 경로에 대한 컨트롤러 코드를 추가하십시오.

대부분의 경우, 당신의 리디렉션 나쁜 컨트롤러 방법으로 끝나는 - return 문이없는 한