Impossibile ottenere un modulo per funzionare correttamente in progetto Symfony2

StackOverflow https://stackoverflow.com/questions/7306531

  •  25-10-2019
  •  | 
  •  

Domanda

sto costruendo (e cercando di) un modulo di contatto per un progetto su cui sto lavorando. Ho seguito questo "tutorial" qui ea primi bit I modificate della Tutorial per adattare il mio progetto. Così, nel mio file Contactform.php (che è ciò che il file Task.php è nel tutorial) il mio aspetto codice come questo:

namespace Shout\MainBundle\Entity;

class Contactform { $ Protetta tuonome;

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

Nel file DefaultClasses.php (dove sto gestire il rendering modulo di contatto) Ho il seguente codice:

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

}

Ovviamente questo è diverso per il tutorial come io non voglio pre-popolarlo con i dati.

Poi, nel file contact.php.twig, ho il seguente codice chiamando il modulo di contatto:

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

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

Tuttavia, continuo a ricevere il seguente errore:

Un'eccezione è stata gettata durante il rendering di un modello ( "percorso "form_contact" non esiste.") In "ShoutMainBundle: default: contact.html.twig" alla riga 62.

Il motivo per cui sono stato riferisco al tutorial è che, pensando ho fatto un errore nella modifica del codice originale, copio e incollato tutto il codice che è il tutorial per il mio progetto. Ma io continuo a ricevere questo errore.

Ho passato l'ultima parte del Venerdì su questo e la parte migliore di questa mattina su di esso, ma sto ancora colpire questo muro di mattoni. C'è qualcosa che ho perso o sto andando nella direzione sbagliata su di esso?

Modifica Ecco il file di routing:

    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 }
È stato utile?

Soluzione

Il problema era che la parte "azione" stava cercando di trovare una pagina che non c'era. Ho rimosso questo e ha funzionato. Ora creare una pagina per farlo riferimento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top