ฉันจะส่งตัวกรองเชิงบริบทไปยังมุมมองผ่านบริการได้อย่างไร


11

ฉันมีมุมมองที่ยอมรับตัวกรองเชิงบริบทเพื่อส่งคืนผลลัพธ์ที่ถูกต้อง ฉันใช้บริการ 3 และ Drupal 7 ฉันสามารถสร้างจุดปลายและดึงข้อมูลมุมมองผ่านบริการ แต่ดูเหมือนว่าไม่มีทางที่จะผ่านตัวกรองเชิงบริบทเนื่องจาก services_views มีเพียงวิธีการดึงข้อมูล (ซึ่งใช้ GET) ไม่มีใครรู้ว่าสิ่งนี้เป็นไปได้และถ้าเป็นเช่นนั้นสามารถทำได้?

คำตอบ:



3

ตราบใดที่ตัวกรองถูกเปิดเผยในมุมมองชื่อฟิลด์จะพร้อมใช้งานเป็นตัวกรองเชิงบริบท ตัวอย่างเช่นเปิดเผย NID ในรายการตัวกรองและคุณสามารถทำได้

GET /endpoint?nid=5

1
วิธีนี้ใช้ได้กับเกณฑ์ตัวกรองแบบเปิดเผย ที่ดีที่สุดของตัวกรองตามบริบทความรู้ของฉันไม่ทำงาน แต่นี่เป็นวิธีแก้ปัญหาที่โดดเด่น
เบรนต์

3

นี่เป็นคำถามที่ตอบแล้ว แต่สำหรับคนอื่น ๆ การเรียกดูที่นี่ในอนาคตผมจะแนะนำให้ใช้และการดูที่เอกสารที่บริการชม มันอธิบายวิธีส่งตัวกรองตามบริบทพร้อมกับข้อโต้แย้งอื่น ๆ ที่เป็นไปได้และมีวิดีโอตัวอย่างและแสดงตัวอย่าง


1
หลังจากทำการวิจัยเพิ่มเติมปรากฏว่าสิ่งนี้เป็นไปไม่ได้หากไม่มีการแก้ไข services_views
379468

2

หากคุณต้องใช้หลายค่าในตัวกรองเชิงบริบทของฉันฉันขอแนะนำให้ทำสิ่งต่อไปนี้:

  • สร้างตัวกรองตามบริบทของคุณ (ในกรณีของฉัน: nid)
  • คลิกที่ "ระบุค่าเริ่มต้น" และตั้งค่าเป็นตัวกรองบริบท PHP คาดว่าสตริงที่มีหลายค่าคั่นด้วย + หรือเครื่องหมายจุลภาค

return str_replace("|", "+", $_GET['nid']);

  • ในส่วน "เพิ่มเติม" ให้ทำเครื่องหมาย "อนุญาตหลายค่า"

ตอนนี้เมื่อเรียกใช้บริการของคุณให้ระบุตัวกรองตามบริบทดังนี้: / my_service? nid = 1 | 2 | 3


2

สำหรับผู้ที่ยังคงมีปัญหาตรวจสอบให้แน่ใจว่าเมื่อคุณเพิ่มตัวกรองในมุมมองภายใต้การตั้งค่าสำหรับเขตข้อมูลที่ระบุจะมีตัวระบุตัวกรอง สิ่งนี้จะต้องเป็นอาร์กิวเมนต์ที่ส่งผ่านไปยังการสอบถามในรูปแบบสองรูปแบบที่ระบุไว้ในเอกสารมุมมองบริการ


ฉันกำลังดิ้นรนกับสิ่งนั้นไม่ใช่เรื่องง่ายเลยเพราะฉันจินตนาการว่าชื่อเรื่องนั้นจะใช้เป็นคีย์ตัวกรอง ขอขอบคุณ!
donnadulcinea

1

ฉันสามารถรับตัวกรองเชิงบริบทด้วย Drupal Services โดย: 1) เปิดใช้งานโมดูล 'Views Contextual Filter Query' ( https://drupal.org/project/views_contextual_filter_query ) 2) ผ่านตัวกรองบริบทผ่าน URL เพื่อเป็นตัวสอบถาม

ในตัวกรองเชิงบริบทคุณจะต้องเลือก 'เมื่อค่าตัวกรองไม่พร้อมใช้งาน' -> 'พารามิเตอร์การค้นหาจาก URL จากนั้นคุณจะสามารถเพิ่มชื่อพารามิเตอร์ที่คุณจะใช้ใน URL นอกจากนี้ยังช่วยให้คุณใช้เครื่องหมาย + และ | ตัวอักษรสำหรับการเลือกเกณฑ์การกรองที่หลากหลาย

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