나는 nid를 얻을 수 있기를 원하지만 내가 가지고있는 유일한 정보는 http://example.com/this-is-the-alias 입니다.
페이지에 없으면 해당 별칭에 대한 / node / *의 내부 경로를 얻는 방법이 있습니까? 아니면 바로 그 별칭에서 nid를 얻는 방법이 있습니까?
나는 nid를 얻을 수 있기를 원하지만 내가 가지고있는 유일한 정보는 http://example.com/this-is-the-alias 입니다.
페이지에 없으면 해당 별칭에 대한 / node / *의 내부 경로를 얻는 방법이 있습니까? 아니면 바로 그 별칭에서 nid를 얻는 방법이 있습니까?
답변:
다음 코드를 사용하여 엔티티를 가져오고로드하고 해당 값에 액세스 할 수 있습니다.
use \Drupal\Core\Url;
$alias = \Drupal::service('path.alias_manager')->getPathByAlias('/etapes-de-la-vie');
$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->nid->value);
$path
때로는와 같습니다/this-is-the-alias
. 루트 경로 (node/{id}
)가 다른 별칭 #migrationstruggles 일 때가되었지만 다른 별칭도있었습니다.