Comment obtenir des arguments de l'URL? en d'autres termes, quel est l'équivalent de la fonction arg()
de Drupal 7 et versions précédentes?
Comme indiqué dans le arg () est obsolète et sera supprimé changer d'enregistrement, l'équivalent Drupal 8 (procédural) de arg()
est le suivant une.
$current_path = \Drupal::service('path.current')->getPath();
$path_args = explode('/', $current_path);
Comme l'enregistrement des modifications le fait remarquer, ce n'est pas toujours le bon code à utiliser. Selon le contexte, vous devez utiliser un code similaire au suivant.
Vérifier si un chemin est pour une page administrative
if (\Drupal::service('router.admin_context')->isAdminRoute()) {
// Your code.
}
Ajouter CSS ou JavaScript conditionnellement, en fonction de la page visitée
function mymodule_page_attachments(array &$attachments) {
if (\Drupal::routeMatch()->getRouteName() == 'my.route') {
$attachments ['#attached']['library'][] = 'my_module/my_library'; // you'll need to define in mymodule.libraries.yml
}
}
Charger le nœud actuellement affiché
$node = \Drupal::routeMatch()->getParameter('node');
Notez que dans le premier et le dernier cas, dans Drupal 7, vous ne devez pas utiliser arg()
, mais respectivement path_is_admin()
et menu_get_object()
L'erreur typique débutant-Drupal-développeur utilise arg()
également dans ces cas.
Veuillez voir https://www.drupal.org/node/2150267
Drupal 7
$query = $_GET['q']; // query string param
$myparam = $_POST['myparam']; // form param
$request_method = $_SERVER['REQUEST_METHOD']; // server variable
$mycookie = $_COOKIE['mycookie']; // cookie
Dans Drupal 8
$query = \Drupal::request()->query->get('q'); // query string param
$name = \Drupal::request()->request->get('name'); // form param
$request_method = \Drupal::request()->server->get('REQUEST_METHOD'); // server variable
$mycookie = \Drupal::request()->cookies->get('mycookie'); // cookie
arg () est déconseillé dans drupal 8, cependant nous pouvons obtenir des valeurs comme arg () la fonction le fait dans drupal 7 & 6 par mentionné)
$path = \Drupal::request()->getpathInfo();
$arg = explode('/',$path);
print_r($arg); exit();
La sortie serait des paramètres dans l'url sauf basepath ou (baseurl),
Array
(
[0] =>
[1] => node
[2] => add
)