อ้างอิง field
ตัวเลือกทั้งหมดของ field มีเทสต์ตรวจกับ type ใน @easy-cms/core หน้าตาในหน้า admin และวิธีจัดเก็บดูได้ที่ Fields
ตัวเลือกของทุก field
| ตัวเลือก | Type | |
|---|---|---|
name | string | จำเป็น เป็นชื่อตัวแปรของ JavaScript และไม่ซ้ำกับ field ข้างเคียง |
type | ดูประเภท | จำเป็น |
label | string | { en, th } | ค่าเริ่มต้นคือชื่อ field ที่แปลงให้อ่านง่าย |
required | boolean | ต้องมีค่า (ไม่ตรวจตอนบันทึกฉบับร่าง) |
unique | boolean | เอกสารสองรายการใช้ค่าซ้ำกันไม่ได้ (field ระดับบนสุด) |
index | boolean | สร้าง index ในฐานข้อมูล |
defaultValue | ค่าของ field | ใช้เมื่อสร้างเอกสารโดยไม่มีค่านี้ |
validate | (value, { data, operation }) => true | string | ตรวจเอง เป็น async ได้ |
access | { read?, update? } | สิทธิ์ระดับ field |
hidden | boolean | ถูกจัดเก็บ แต่ไม่ถูกส่งคืนและไม่รับเป็น input |
localized | boolean | เก็บค่าแยกตามภาษา (ต้องมี localization) |
position | 'sidebar' | แสดงในแถบข้างของหน้าแก้ไข (field ระดับบนสุด) |
admin | FieldAdmin | admin components ดูด้านล่าง |
admin
| ตัวเลือก | Type | |
|---|---|---|
component | AdminComponent | Web Component แทนช่องกรอก Admin components |
after | AdminComponent[] | component ที่แสดงใต้ field |
AdminComponent คือชื่อ tag ที่ขึ้นต้นด้วย ecms- หรือ { tag, props }
ประเภท
| ประเภท | ค่า | ตัวเลือกเพิ่มเติม |
|---|---|---|
text | string | minLength, maxLength |
textarea | string | minLength, maxLength |
email | string (ตัวพิมพ์เล็ก) | |
number | number | min, max |
boolean | boolean | |
date | string แบบ ISO 8601 | |
select | หนึ่งตัวเลือก หรือ array เมื่อใช้ hasMany | options, hasMany |
slug | string ที่ปลอดภัยสำหรับ URL และไม่ซ้ำ | from |
json | JSON ใดก็ได้ | |
richText | JSON ของ Tiptap | ดู Rich text |
upload | id ของเอกสาร media | |
relationship | id ของเอกสาร | to, hasMany |
array | แถวที่มี id และ field ย่อย | fields, minRows, maxRows |
group | object | fields |
blocks | แถวหลายชนิด มี blockType | blocks, minRows, maxRows |
text และ textarea
| ตัวเลือก | Type | |
|---|---|---|
minLength | number | จำนวนตัวอักษรน้อยที่สุด |
maxLength | number | จำนวนตัวอักษรมากที่สุด หน้า admin จะพิมพ์เกินไม่ได้ |
number
| ตัวเลือก | Type | |
|---|---|---|
min | number | ค่าน้อยที่สุด |
max | number | ค่ามากที่สุด |
select
| ตัวเลือก | Type | |
|---|---|---|
options | (string | { label, value })[] | จำเป็น ตัวเลือก label เป็น { en, th } ได้ |
hasMany | boolean | เลือกได้หลายตัว (checkbox) ค่าเป็น array |
slug
| ตัวเลือก | Type | |
|---|---|---|
from | string | field แบบ text ข้างเคียงที่ใช้สร้าง slug เมื่อยังว่าง |
uniqueWithin | string | field ข้างเคียง (เช่น parent): slug ห้ามซ้ำเฉพาะเอกสารที่มีค่าใน field นั้นเหมือนกัน |
relationship
| ตัวเลือก | Type | |
|---|---|---|
to | string | จำเป็น slug ของ collection ปลายทาง |
hasMany | boolean | หลายเอกสาร ค่าเป็น array |
filterOptions | ({ id, user, cms }) => Where | true | เอกสารใดที่เลือกได้ ช่องเลือกใน admin แสดงเฉพาะเอกสารเหล่านี้ และตรวจซ้ำตอนบันทึก |
array
| ตัวเลือก | Type | |
|---|---|---|
fields | Field[] | จำเป็น field ของแต่ละแถว |
minRows | number | จำนวนแถวน้อยที่สุด |
maxRows | number | จำนวนแถวมากที่สุด |
group
| ตัวเลือก | Type | |
|---|---|---|
fields | Field[] | จำเป็น field ข้างใน |
blocks
| ตัวเลือก | Type | |
|---|---|---|
blocks | Block[] | จำเป็น ชนิดของแถว ดู Block |
minRows | number | จำนวนแถวน้อยที่สุด |
maxRows | number | จำนวนแถวมากที่สุด |
Block
| ตัวเลือก | Type | |
|---|---|---|
slug | string | จำเป็น เก็บในแต่ละแถวเป็น blockType |
labels | { singular?, plural? } | ชื่อในหน้า admin |
fields | Field[] | จำเป็น field ของ block |