Невозможно получить форму для правильной работы в проекте Symfony2
-
25-10-2019 - |
Вопрос
Я строю (хорошо, пытаясь) контактную форму для проекта, над которым я работаю. Я следил за этим "Учебным пособием" здесь И сначала я сменил кусочки учебника, чтобы соответствовать моему проекту. Итак, в моем файле contactform.php (это то, что файл task.php находится в учебном пособии) мой код выглядит следующим образом:
namespace Shout\MainBundle\Entity;
Class ContactForm {Protected $ YourName;
protected $youremail;
protected $yourphone;
protected $yourenquiry;
protected $newsletter;
protected $events;
public function getYourname()
{
return $this->yourname;
}
public function setYourname($yourname)
{
$this->yourname = $yourname;
}
public function getYouremail()
{
return $this->youremail;
}
public function setYouremail($youremail)
{
$this->youremail = $youremail;
}
public function getYourphone()
{
return $this->yourphone;
}
public function setYourphone($yourphone)
{
$this->yourphone = $yourphone;
}
public function getYourenquiry()
{
return $this->yourenquiry;
}
public function setYourenquiry($yourenquiry)
{
$this->YourEnquiry = $yourenquiry;
}
public function getNewsletter()
{
return $this->newsletter;
}
public function setNewsletter($newsletter)
{
$this->newsletter = $newsletter;
}
public function getEvents()
{
return $this->events;
}
public function setEvents($events)
{
$this->events = $events;
}
В файле defaultclasss.php (где я обрабатываю рендеринг контактной формы) У меня есть следующий код:
public function contactAction(Request $request)
{
$contactform = new Contactform();
$form = $this->createFormBuilder($contactform)
->add('yourname', 'text')
->add('youremail', 'text')
->add('yourphone', 'text')
->add('yourenquiry', 'text')
->add('newsletter', 'text')
->add('events', 'text')
->getForm();
return $this->render('ShoutMainBundle:Default:contact.html.twig', array('form' => $form->createView()));
}
Очевидно, что это отличается от учебника, так как я не хочу заранее заполнять его данными.
Затем в файле contact.php.twig у меня есть следующий код, который вызывает контактную форму:
<form action="{{ path('form_contact') }}" method="post" {{ form_enctype(cform) }}>
{{ form_widget(cform) }}
<input type="submit" />
</form>
Однако я продолжаю получать следующую ошибку:
Исключение было брошено во время рендеринга шаблона («маршрут» form_contact »не существует.») В «Shoutmainbundle: по умолчанию: contact.html.twig» в строке 62.
Причина, по которой я имел в виду учебное пособие, заключается в том, что, думая, что я ошибся в редактировании оригинального кода, я копировал и вставил весь код, который находится в учебном пособии в моем проекте. Но я все еще получаю эту ошибку.
Я провел последнюю часть пятницы на этой и лучшей части этого утра на нем, но я все еще бью эту кирпичную стену. Есть ли что -то, что я пропустил, или я ухожу по этому поводу?
Редактировать:Вот файл маршрутизации:
ShoutMainBundle_mainpage:
pattern: /mainpage/{slug}
defaults: { _controller: ShoutMainBundle:Default:mainpage }
ShoutMainBundle_subpage:
pattern: /mainpage/{page}/{slug}
defaults: { _controller: ShoutMainBundle:Default:subpage }
ShoutMainBundle_news:
pattern: /news
defaults: { _controller: ShoutMainBundle:News:index }
ShoutMainBundle_newsarticle:
pattern: /news/article/{article}
defaults: { _controller: ShoutMainBundle:News:article }
ShoutMainBundle_event:
pattern: /event
defaults: { _controller: ShoutMainBundle:Event:index }
ShoutMainBundle_eventselected:
pattern: /event/{id}/{event}
defaults: { _controller: ShoutMainBundle:Event:selected }
ShoutMainBundle_blog:
pattern: /blog
defaults: { _controller: ShoutMainBundle:Blog:index }
ShoutMainBundle_blogarticle:
pattern: /blog/article/{article}
defaults: { _controller: ShoutMainBundle:Blog:article }
ShoutMainBundle_blogcategorieshome:
pattern: /blog/categories/
defaults: { _controller: ShoutMainBundle:Blog:categoryhome }
ShoutMainBundle_blogcategoriesselected:
pattern: /blog/category/{category}
defaults: { _controller: ShoutMainBundle:Blog:categoryselected }
ShoutMainBundle_blogarchive:
pattern: /blog/archive/{category}
defaults: { _controller: ShoutMainBundle:Blog:archive }
ShoutMainBundle_contact:
pattern: /contact-us
defaults: { _controller: ShoutMainBundle:Default:contact }
Решение
Проблема заключалась в том, что часть «действия» пыталась найти страницу, которой не было. Я удалил это, и это сработало. Теперь создаст страницу для ссылки.