Bonjour,
J'ai un one page et j'utilise donc sur la même page plusieurs route qui me permet d'afficher des informations de la base de donnée, gérer un filtre de catégorie etc....
Tout fonctionne bien sur au niveau du formulaire pour envoyer des emails. il est impossible de l'afficher .
Je précise que si je met une route avec une url différente de celle de ma onepage cela fonctionne très bien .Mais si je précise la même route que mon onepage .... error
J'essaye de plusieurs façon :
1 Je crée un template pour le formulaire de mail que j’inclus (méthode include ) sur ma on page.
2 je crée directement le controler avec la vue du onepage

le problème est que j'ai une erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Variable "form" does not exist in laurentBundle:Default:contact.html.twig at line 7
j'ajoute donc à mon include le with {...}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
{% include "laurentBundle:Default:contact.html.twig" with {'form': 'form'} %}
Malheureusement j'ai une erreur de rendu du template
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
An exception has been thrown during the rendering of a template ("Catchable Fatal Error: Argument 1 passed to Symfony\Component\Form\FormRenderer::searchAndRenderBlock()
 must be an instance of Symfony\Component\Form\FormView, string given,
 called in /Applications/MAMP/htdocs/Portfolio/app/cache/dev/twig/dd/68/f177e31b2194f31f44e4960fe8a287782ef96f0fbde168c24fae0b2f6fe8.php on line 40 and defined") in laurentBundle:Default:contact.html.twig at line 7.
Je sais pas comment le résoudre ....
mes routes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
laurent_adminRealisations:
    resource: "@laurentBundle/Resources/config/routing/realisations.yml"
    prefix:   /adminRealisations
 
laurent_route_realisations:
    path:     /
    defaults: { _controller: laurentBundle:Default:listRealisations }
 
laurent_route_Sous_Menu:
    path:     /
    defaults: { _controller: laurentBundle:Categories:sousMenu }
 
laurent_route_SelectionCategories:
    path:     /categorie/{categorie}
    defaults: { _controller: laurentBundle:Categories:selectionCategories }
 
laurent_route_PresentationRealisations:
    path:     /realisation/{id}
    defaults: { _controller: laurentBundle:Default:presentationRealisations }
 
laurent_route_Contact:
    path:     /
    defaults: { _controller: laurentBundle:Default:contact }
    requirements:
      _method: GET|POST
Le controller de mon formulaire mail
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
    public function contactAction(){
 
    $messagerie = new messagerie();
    $form = $this->createForm(new ContactType(), $messagerie);
 
    $request = $this->getRequest();
    if ($request->getMethod() == 'POST') {
        $form->bind($request);
 
        if ($form->isValid()) {
 
       $message = \Swift_Message::newInstance()
            ->setSubject('Contact enquiry from symblog')
            ->setFrom('enquiries@symblog.co.uk')
            ->setTo('email@email.com')
            ->setBody($this->renderView('laurentBundle:Default:contactEmail.txt.twig', array('messagerie' => $messagerie)));
        $this->get('mailer')->send($message);
 
        $this->get('session')->getFlashBag()->add('blogger-notice', 'Your contact enquiry was successfully sent. Thank you!');
         return $this->redirect($this->generateUrl('laurent_route_Contact'));
 
    }
}
    return $this->render('laurentBundle:Default:contact.html.twig', array(
        'form' => $form->createView()
    ));
 
}
}
ma vue formulaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
 
{% for flashMessage in app.session.flashbag.get('blogger-notice') %}
{{ flashMessage }}
{% endfor %}
 
 
<form action="{{ path('laurent_route_Contact') }}" method="post" {{ form_enctype(form) }}>
    {{ form_widget(form) }}
 
    <input type="submit" />
</form>
Ma vue de mon one page ( je ne met que le lien sensé relier le template mail et ma page
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
{% include "laurentBundle:Default:contact.html.twig" with {'form': 'form'} %}
Si quelqu'un peut m'aider, je le remercie d'avance