Appel formulaire depuis un controler

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

Merci de votre aide car je bloque complètement...

Un utilisateur envoi au site un code pour accéder à un formulaire.
Avec un url de type : site/x/depot_lecode/lecodeatransmettre il doit arriver au formulaire 'leformulaire'.

Les 2 chemins sont déclarés dans le routing.yml :

x.depot_lecode:
path: '/depot_lecode/{code}'
defaults:
_controller: '\Drupal\x\Controller\XController::depot_lecode'
[..]
x.projet-t:
path: '/x-projet-t/{nid}/{did}'
defaults:
_form: '\Drupal\x\Form\leformulaire'
_title: 'Formulaire de projet non thématique (phase 2) et thématique (did optionnel)'
did: 0
[...]

ps : did est optionnel car il peut etre appelé de 2 façons.

Bref, quand l(utilisateur envoi "site/x/depot_lecode/lecodeatransmettre" je peux le suivre à la trace et vois bien qu'il arrive à ma fonction "depot_lecode" dans el controller.
Quand j'ai tout vérifier, je l'envoi donc au formulaire (leformulaire) ainsi :``

$build= [];
$form = \Drupal::formBuilder()->getForm('Drupal\x\Form\leformulaire',$nid,$did);
$build['form'] = ["#markup" => $form];
return $build;

Mais là cela se gâte.
Il me renvoi une erreur 404 !

Pourtant je vois dans mon module, qu'il passe par 'x_form_alter' et charge les données dans le formulaire !

Où ai-je fait une erreur ?

Merci pour votre aide.
yo

Forum : 
Version de Drupal : 
Tags : 

Bjr
oui cela fait la même chose.

Quand on appel un formulaire depuis le controler, c'est la méthode à faire où faut il passer par quelque chose comme :

$redirect = new RedirectResponse('/leformulaire/' . $nid.'/'.$did);
return $redirect->send();

?

merci de m'avoir répondu quand même et de ton aide.
Juste une chose.

Quand je suis sur mon controler, mon but est d'envoyer el formulaire sur une page individuelle.
De fait, il n'y en a pas car l'appel vient de l'extérieur.

return Build va afficher sur quelle page en principe ? page.twig.html
yo