Submitted by yonnel on
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
T'as essayé sans le #markup
Permalien Soumis par XTaz le 17 Août, 2018 - 15:45
T'as essayé sans le #markup
$build= [];
$build['form'] = \Drupal::formBuilder()->getForm('Drupal\x\Form\leformulaire',$nid,$did);
return $build;
Bjr
Permalien Soumis par yonnel le 17 Août, 2018 - 16:04
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();
?
Désolé, je ne vois pas.
Permalien Soumis par XTaz le 17 Août, 2018 - 16:11
Désolé, je ne vois pas.
La méthode que j'ai donnée est celle que j'ai utilisée dans un controller.
merci de m'avoir répondu
Permalien Soumis par yonnel le 17 Août, 2018 - 16:20
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