it-swarm.com.de

Argumente von der URL abrufen

Wie erhalte ich Argumente von der URL? Mit anderen Worten, was entspricht der Funktion arg() von Drupal 7 und früheren Versionen)?

Wie in arg () angegeben, ist veraltet und wird entfernt Änderungsdatensatz, ist das Drupal 8 (prozedurale) Äquivalent von arg() das folgende einer.

$current_path = \Drupal::service('path.current')->getPath();
$path_args = explode('/', $current_path);

Wie der Änderungsdatensatz mitteilt, ist dies nicht immer der richtige Code. Abhängig vom Kontext sollten Sie Code verwenden, der dem folgenden ähnlich ist.

  • Überprüfen Sie, ob ein Pfad für eine Verwaltungsseite bestimmt ist

    if (\Drupal::service('router.admin_context')->isAdminRoute()) {
      // Your code.
    }
    
  • Fügen Sie CSS oder JavaScript bedingt hinzu, basierend auf der besuchten Seite

    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
      }
    }
    
  • Laden Sie den aktuell angezeigten Knoten

    $node = \Drupal::routeMatch()->getParameter('node');
    

Beachten Sie, dass Sie im ersten und letzten Fall in Drupal 7) nicht arg() verwenden sollten, sondern path_is_admin() und menu_get_object() Der typische Anfänger-Drupal-Entwickler Fehler verwendet arg() auch in diesen Fällen.

10
kiamlaluno

Siehe 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

In 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
3
user21513

arg () ist in drupal 8 veraltet, wir können jedoch Werte erhalten, wie dies die Funktion arg () in drupal 7 & 6 von erwähnt) tut

$path = \Drupal::request()->getpathInfo();
$arg  = explode('/',$path);
print_r($arg); exit(); 

Die Ausgabe wäre Parameter in URL außer basepath oder (baseurl),

Array
(
   [0] => 
   [1] => node
   [2] => add
)