2015-07-08 5 views
2

Я новичок в Symfony и пытаюсь отобразить форму с помощью Acme/LibraryBundle.symfony Исключение было сделано во время рендеринга шаблона

но была ошибка

«Исключение было брошено во время рендеринга шаблона (» Не удалось сгенерировать URL для указанного маршрута «book_new» как таковой маршрут не существует ".) В AcmeLibraryBundle : Book: new.html.twig в строке 3. "

Моя форма

<form action="{{ path('book_new') }}" method="post" {{ form_enctype(form) }}> 
    {{ form_widget(form) }} 

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

Мой контроллер:

namespace Acme\LibraryBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 

use Acme\DemoBundle\Model\Book; 

use Acme\LibraryBundle\Form\Type\BookType; 

class BookController extends Controller 
{ 
    public function newAction() 
    { 

     $book = new Book(); 
     $form = $this->createForm(new BookType(), $book); 

     /*$request = $this->getRequest(); 

     if ('POST' === $request->getMethod()) { 
      $form->handleRequest($request); 

      if ($form->isValid()) { 
       $book->save(); 

       return $this->redirect($this->generateUrl('book_success')); 
      } 
     }*/ 

     return $this->render('AcmeLibraryBundle:Book:new.html.twig', array(

       'form' => $form->createView(), 

     )); 

    } 
} 

ответ

0

Поскольку book_new не существует в моем routing.yml, я изменил его на acme_library_homepage.

acme_library_homepage: 
path:  /test 
defaults: { _controller: AcmeLibraryBundle:Book:new } 

До:

<form action="{{ path('book_new') }}" method="post" {{ form_enctype(form) }}> 
{{ form_widget(form) }} 

<input type="submit" /> 

После

<form action="{{ path('acme_library_homepage') }}" method="post" {{ form_enctype(form) }}> 
{{ form_widget(form) }} 

<input type="submit" />