ฉันกำลังพยายามสร้าง Views จำนวนหนึ่งด้วยการแสดงผล REST Export พวกเขามีเส้นทางที่ตั้งค่าอยู่เบื้องหลัง 'api/.../.../.../%node' โดยที่ %node จะเป็น ID ที่ส่งไปยังคำขอที่จะอัปคาสต์มุมมองพื้นฐานมีตัวกรองตามบริบทของ Content ID (ไม่รวม) จากนั้น "มีคำใดๆ" จากโหนดนี้
อย่างไรก็ตาม ในตัวกรองบริบทสำหรับ "Taxonomy Term ID จาก URL" ที่มี "โหลดคำศัพท์จากหน้าโหนด":
ถ้า (($node = $this->routeMatch->getParameter('node')) && $node instanceof NodeInterface) {
$entity = $โหนด;
}
การตรวจสอบนี้ล้มเหลว ดังนั้นจึงไม่มีการตรวจสอบเงื่อนไขของโหนด
ฉันต้องการพารามิเตอร์ที่กำหนดเองเพื่อจุดประสงค์นี้เพื่อบอกระบบว่าต้องค้นหาอะไรหรือไม่ ฉันคิดว่าตราบใดที่ ID เป็นโหนด การอัปคาสต์จะยังคงเกิดขึ้น แต่ก็ไม่เป็นเช่นนั้น
นี่คือสิ่งที่ xdebug เห็นใน ViewPageController สำหรับพารามิเตอร์เส้นทางและอาร์กิวเมนต์:
7611 คือรหัสโหนด ส่วนใดของกระบวนการควรหรือโดยปกติจะอัปคาสต์สิ่งนี้ไปยังวัตถุโหนด
ถ้าฉันทำสิ่งนี้ในอาร์กิวเมนต์ Views TID แน่นอนว่าฉันจะมีโหนด:
// โหลดอาร์กิวเมนต์เริ่มต้นจากโหนด
ถ้า (!empty($this->options['node'])) {
// เพียงตรวจสอบว่าสามารถตรวจพบโหนดหรือไม่
ถ้า (($node = $this->routeMatch->getParameter('node')) && $node instanceof NodeInterface) {
$entity = $โหนด;
}
ถ้า (($node = $this->routeMatch->getParameter('node')) && !empty($node) && !($node instanceof NodeInterface)) {
$entity = \Drupal::entityTypeManager()->getStorage('node')->load($node);
}
}
แก้ไข: อาจเกี่ยวข้อง: https://www.drupal.org/project/drupal/issues/2528166