我希望能够得到此证明,但我仅有的信息是http://example.com/this-is-the-alias。
如果我不在页面上,是否可以获取该别名的/ node / *内部路径?还是有一种方法可以立即从该别名获取nid?
我希望能够得到此证明,但我仅有的信息是http://example.com/this-is-the-alias。
如果我不在页面上,是否可以获取该别名的/ node / *内部路径?还是有一种方法可以立即从该别名获取nid?
Answers:
您可以使用以下代码获取和加载实体,并可以访问其值。
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的时候,但是它也与其他别名一起出现。