Obtenir les paramètres d'URL à l'intérieur du module personnalisé
J'ai créé un bloc personnalisé comme ceci:
class HelloBlock extends BlockBase implements BlockPluginInterface{
/**
* {@inheritdoc}
*/
public function build() {
$config = $this->getConfiguration();
$result = db_query('SELECT * FROM {test}');
return array(
'#theme' => 'world',
'#test' => $result
);
}
}
Et je souhaite maintenant obtenir par programme un certain nombre de paramètres de l'URL.
Par exemple:
Si l'URL est http://localhost/drup/hello/5569
je souhaite récupérer la valeur 5569
à l'intérieur de mon module.
J'ai essayé arg(1)
et drupal_get_query_parameters()
, mais j'ai eu ce message d'erreur:
Call to undefined function `Drupal\hello\Plugin\Block\arg()`
et
Call to undefined function `Drupal\hello\Plugin\Block\drupal_get_query_parameters()`
Comment puis-je obtenir les paramètres?
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé pour obtenir la valeur de ce paramètre à partir de l'URL (localhost/vérifier/myform?mob=89886665)
Et appliqué dans ma Requête select
Mais sur plusieurs valeur de paramètre, je suis maintenant à succès(Ex: http://10.163.14.41/multisite/check/myform?mob=89886665&id=1)
Utilisation
\Drupal\Core\Routing;
:arg() est obsolète dans drupal 8, cependant, nous pouvons obtenir des valeurs telles que arg() la fonction n'est dans drupal 7 & 6
La sortie serait paramètres dans l'url, sauf basepath ou (baseurl),
$path = \Drupal::service('path.current')->getPath();
. Mais je ne vois pas beaucoup de différence en fait.J'ai utilisé {noeud} arg(1). Et je peux accéder par le biais de *->getParameter('node');
Espère que cela va fonctionner.
Pour obtenir requête de paramètre de l'url, vous pouvez nous la suite.
Si vous avez l'url par exemple,
Pour obtenir "uid" à partir de l'url, utilisez la propriété..
Pour obtenir "num" à partir de l'url, utilisez la propriété..
Si votre url est comme l'exemple ci-dessous
Ensuite, vous devez obtenir l'url complète chemin par
ensuite exploser le chemin d'accès pour obtenir le tableau d'arguments.
Un autre exemple, si la valeur transmise par une clé dans l'url comme ci-dessous où id contient la valeur
Vous pouvez obtenir l'id donné par drupal demande
Drupal docs sont de grands sur ce: https://www.drupal.org/docs/8/api/routing-system/parameters-in-routes
définir votre variable path en yaml
Ajouter la variable dans votre méthode, et de l'utiliser