الانتقال إلى المحتوى الرئيسي
تقوم حقول العلاقة بتوصيل إدخال CMS بإدخال آخر، أو بسجلات Plato المدعومة مثل منتجات القائمة وفئات القائمة.

اكتب قيم العلاقة

علاقة واحدة:
{
  "values": {
    "category": "entry_category_1"
  }
}
علاقة متعددة:
{
  "values": {
    "relatedProducts": ["entry_1", "entry_2"]
  }
}
يقوم Plato بالتحقق من صحة معرفات العلاقة قبل الحفظ. إذا لم يكن المعرف موجودًا في مساحة عمل المفتاح API، فسيفشل الطلب:
{
  "message": "Invalid relation value for field 'category'."
}

قراءة معرفات العلاقة

إذا قمت بتحديد حقل علاقة بدون حقول متداخلة، تقوم Plato بإرجاع المعرف أو المعرفات المخزنة.
?fields=id,name,category
إجابة:
{
  "id": "entry_123",
  "name": {
    "en": "Classic Burger"
  },
  "category": "entry_category_1"
}

توسيع العلاقات

استخدم التحديد المتداخل لتوسيع إدخالات CMS ذات الصلة.
?fields=id,name,category(id,name)
إجابة:
{
  "id": "entry_123",
  "name": {
    "en": "Classic Burger"
  },
  "category": {
    "id": "entry_category_1",
    "name": {
      "en": "Burgers"
    }
  }
}

عمق العلاقة

يتحكم maxDepth في مدى إمكانية توسيع العلاقات المتداخلة.
?fields=id,name,category(id,name,parent(id,name))&maxDepth=2
العمق الافتراضي هو 3. أقصى عمق هو 6. حافظ على عمق منخفض للصفحات العامة.

أهداف علاقات النظام المدعومة

يمكن أن تستهدف حقول العلاقة CMS أيضًا سجلات Plato المدعومة. تتضمن أهداف علاقة النظام المدعومة حاليًا ما يلي:
  • MenuProduct
  • MenuCategory
عند توسيعها، تعود سجلات النظام:
{
  "id": "menu_product_id",
  "name": {
    "en": "Classic Burger"
  }
}