เนื่องจาก /data เป็นนามแฝงของเส้นทางสำหรับโหนด Drupal จึงแสดงโหนดนั้นแทนที่จะแสดงว่าตัวควบคุมที่เกี่ยวข้องกับเส้นทางนั้นส่งคืนอะไร หากคุณต้องตั้งค่านามแฝงเส้นทางของโหนดเป็น /admin/config/people/accounts Drupal จะแสดงโหนดนั้นแทนหน้าการตั้งค่าบัญชี
หากคุณต้องการเปลี่ยนอาร์เรย์การเรนเดอร์ที่ใช้สำหรับโหนด คุณต้องดำเนินการ hook_ENTITY_TYPE_view()
. คุณสามารถเปรียบเทียบ $entity->id()
ด้วยรหัสโหนดที่คุณต้องการเพิ่มข้อมูลในอาร์เรย์การแสดงผล
ใช้ \Drupal\Core\Entity\EntityInterface;
ใช้ \Drupal\Core\Entity\Display\EntityViewDisplayInterface;
/**
* ใช้ hook_ENTITY_TYPE_view()
*/
ฟังก์ชัน mymodule_node_view (อาร์เรย์ &$build, EntityInterface $entity, EntityViewDisplayInterface $display, $view_mode) {
ถ้า ($entity->id() == 3) {
// เปลี่ยน $build
}
}
คุณยังสามารถหา ID โหนดได้จากนามแฝงพาธ เช่น รหัสที่คล้ายกับรหัสต่อไปนี้
ใช้ \Drupal\Core\Entity\EntityInterface;
ใช้ \Drupal\Core\Entity\Display\EntityViewDisplayInterface;
/**
* ใช้ hook_ENTITY_TYPE_view()
*/
ฟังก์ชัน mymodule_node_view (อาร์เรย์ &$build, EntityInterface $entity, EntityViewDisplayInterface $display, $view_mode) {
$path = \Drupal::service('path_alias.manager')->getPathByAlias('/data');
ถ้า (preg_match('/node\/(\d+)/', $path, $match)) {
ถ้า ($entity->id() == $matches[1]) {
// เปลี่ยน $build
}
}
}
ดู ฉันจะรับ ID โหนดจากนามแฝงพาธได้อย่างไร ซึ่งจะอธิบายด้วยว่าควรใช้เมื่อใด path_alias.manager หรือ เส้นทาง alias_manager บริการ.