web-dev-qa-db-fra.com

Comment obtenir le nœud du référent URL?

J'ai une entité personnalisée nommée Application qui a un champ Entity Reference nommé Product.

Lorsque je suis sur une page d'application et que je clique sur un Produit pour le voir, je voudrais savoir que je viens de la page Application et que je connais son ID .

Cela me permettrait d'afficher les informations de la page Application sur la page Product.

Mais comment le faire ?

1
Pascal Pivaty

Cette méthode fonctionne pour moi:

use Symfony\Component\HttpFoundation\Request;
use Drupal\Core\Url;
// Getting the referer.
$request = \Drupal::request();
$referer = $request->headers->get('referer');
// Getting the base url.
$base_url = Request::createFromGlobals()->getSchemeAndHttpHost();
// Getting the alias or the relative path.
$alias = substr($referer, strlen($base_url));
// Getting the node.
$params = Url::fromUri("internal:" . $alias)->getRouteParameters();
$entity_type = key($params);
$node = \Drupal::entityTypeManager()->getStorage($entity_type)->load($params[$entity_type]);

//to use dpm you need the devel module
dpm($node->id());
dpm($node->title->value);
1