web-dev-qa-db-fra.com

Ajouter '?' et les caractères «=» pour interroger la chaîne

J'essaye de passer '?' et les symboles '=' sur une page en utilisant routing.yml

company.calc:
  path: '/form?company={nid}'
  defaults:
    _controller: FrameworkBundle:Redirect:redirect
    _title: 'Calc'
 requirements:
   _permission: 'access content'

mais les symboles sont transcodés en entités HTML. On dirait form%3Fcompany%3D%3Fcompany%3D18141 et mène à la page 404.

Toutes les idées pour passer la chaîne comme

/form?company=1234 

? Cette chaîne est nécessaire pour préremplir le champ du formulaire.

Trouvez la même question ici mais pas de réponse, pas de solution :(.

4
Peter Lozovitskiy

Vous déclarez les paramètres de requête dans les itinéraires drupal dans un fichier mymodule.routing.yml comme ceci:

mymodule.mailcommitter:
  path: '/mailcheck/{uid}'
  defaults:
    _controller: '\Drupal\mymodule\Controller\ProfilController::checkMailCommit'
    _title: 'commit mail'
  options:
      query:
        token: ""
  requirements:
    _permission: 'access content'

Ensuite, vous créez une URL par route comme ça

'url' => Url::fromRoute('mymodule.mailcommitter', ['uid' => 1], ['query' => ['token' => 'hello']])

Consultez également ce document: https://www.drupal.org/docs/8/api/routing-system/parameters-in-routes/using-parameters-in-routes

8
Rainer Feike