Question

Je construis (bien essayer de) un formulaire de contact pour un projet sur lequel je travaille. Je suis ce « tutorial » et au début je changé bits du tutoriel pour adapter mon projet. Donc, dans mon dossier Contactform.php (qui est ce que le fichier est Task.php dans le tutoriel) mon apparence de code comme ceci:

namespace Shout\MainBundle\Entity;

classe Contactform { votrenom protected $;

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;
}

Dans le fichier DefaultClasses.php (où je me occupe le formulaire de contact rendu) Je le code suivant:

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

}

Il est évident que cela est différent du tutoriel que je ne veux pas pré-remplir avec des données.

Ensuite, dans le fichier contact.php.twig, j'ai le code suivant appelant le formulaire de contact:

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

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

Cependant, je continue à obtenir l'erreur suivante:

Une exception a été levée lors du rendu d'un modèle ( "Route "form_contact"n'existe pas.") Dans "ShoutMainBundle: Valeur par défaut: contact.html.twig" à la ligne 62.

La raison pour laquelle j'ai fait référence au tutoriel est que, pensant que je l'ai fait une erreur dans l'édition du code d'origine, je copie et collé tout le code qui se trouve sur le tutoriel pour mon projet. Mais je reçois toujours cette erreur.

J'ai passé la dernière partie de vendredi à ce sujet et la meilleure partie de ce matin, mais je frappe encore ce mur de briques. Y at-il quelque chose que j'ai manqué ou que je vais dans le mauvais sens à ce sujet?

Edit: Voici le fichier de routage:

    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 }
Était-ce utile?

La solution

La question était que la partie « action » a essayé de trouver une page qui n'était pas là. J'ai enlevé cela et cela a fonctionné. Va maintenant créer une page pour qu'elle référence.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top