Bagaimana cara mendapatkan simpul dengan url alias?

37

Saya tahu saya bisa memuat simpul dengan judulnya dengan node_load()fungsi. Apakah mungkin untuk memuat simpul dengan alias URL-nya?

Bulan
sumber

Jawaban:

56

Anda ingin menyelidiki menu_get_object dan drupal_lookup_path .

Sesuatu seperti ini akan melakukan apa yang Anda inginkan:

$alias = "some/path/to/a/page";
$path = drupal_lookup_path("source", $alias);
$node = menu_get_object("node", 1, $path);
mpdonadio
sumber
Juga, untuk secara dinamis ambil url alias lakukan selanjutnya: $ alias = $ _SERVER ['REQUEST_URI']; $ alias = substr ($ alias, 1); // untuk menghapus "/" dari awal string
Eugene Pavlov
@EugenePavlov - $alias = drupal_get_path_alias();seharusnya begitu.
leymannx
0

Untuk seseorang yang mencari cara untuk melakukan ini di Drupal 8 di sini adalah pertanyaan dan jawaban yang sesuai

Bagaimana saya bisa mendapatkan nid dari node dari halaman alias?

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]);
anoopjohn
sumber