วิธีรับโหนดด้วยชื่อแทน url


37

ฉันรู้ว่าฉันสามารถโหลดโหนดด้วยหัวเรื่องด้วยnode_load()ฟังก์ชัน เป็นไปได้หรือไม่ที่จะโหลดโหนดด้วยนามแฝง URL

คำตอบ:


56

คุณต้องการที่จะตรวจสอบmenu_get_objectและdrupal_lookup_path

สิ่งนี้จะทำสิ่งที่คุณต้องการ:

$alias = "some/path/to/a/page";
$path = drupal_lookup_path("source", $alias);
$node = menu_get_object("node", 1, $path);

นอกจากนี้หากต้องการคว้าชื่อแทน URL แบบไดนามิกให้ทำต่อไป: $ alias = $ _SERVER ['REQUEST_URI']; $ alias = substr ($ alias, 1); // เพื่อลบ "/" จากจุดเริ่มต้นของสตริง
Eugene Pavlov

@EugenePavlov - $alias = drupal_get_path_alias();ควรจะเป็น
leymannx

0

สำหรับใครที่กำลังมองหาวิธีทำสิ่งนี้ใน Drupal 8 นี่คือคำถามและคำตอบที่เกี่ยวข้อง

ฉันจะรับหมายเลขของโหนดจากนามแฝงของหน้าได้อย่างไร

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]);
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.