Dans mon gestionnaire d'envoi personnalisé, je veux rediriger vers une page de visualisation URL, supposons que mon nom de vue soit team et son chemin est /admin/team
, Je découvre que je devrais utiliser $from_state->setRedirect('route');
mais quand j'ai essayé $from_state->setRedirect('/admin/team');
Face à une erreur, comment puis-je obtenir le nom de l'itinéraire dans?
Le nom de routage correct pour l'affichage est view.VIEW_MACHINE_NAME.PAGE_MACHINENAME
(Dans un autre mot "view.$view_id.$display_id"
). essayez quelque chose comme suivre
use \Drupal\Core\Url;
$url = Url::fromRoute('view.VIEW_MACHINE_NAME.PAGE_MACHINENAME');
$form_state->setRedirectUrl($url);
et pour votre cas
$url = Url::fromRoute('view.team.page_1'); // page_1 is my guess as to your page name, please replace it with your page machine_name
Apprenez plus: Comment formuler le nom de l'itinéraire
après le commentaire @ 4k4, vous pouvez également rediriger le formulaire vers un routeur personnalisé avec une URL
suffit d'utiliser $form_state->setRedirectUrl($url)
Pour utiliser des filtres contextuels de vues comme paramètres, utilisez arg_X, fe.
$url = Url::fromRoute('view.team.page_1', ['arg_0' => 1234]);
Le Webprofiler du module devel vous permet de voir l'itinéraire de n'importe quelle page.
Il affiche également le nombre de requêtes DB effectuées sur la page ainsi que le temps de demande en plus de nombreuses autres fonctionnalités.
Il est disponible pour Drupal 7 et 8.
Exemple simple: cela fonctionnera :)
use Drupal\Core\Url;
$form_state->setRedirect('view.VIEW_MACHINE_NAME.PAGE_MACHINENAME'); // view.my_view.page_1
Pour Durpal 8, vous pouvez également consulter la table de base de données "router" pour obtenir vos paramètres de redirection.
Recherchez la valeur correspondante dans la colonne "nom" et comparez-la à la colonne du chemin.
$from_state->setRedirect('YOUR_DB_VALUE_HERE');