เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ
เพื่อให้แน่ใจว่าข้อมูลในคอลเลกชันมีความถูกต้อง ปลอดภัย และสอดคล้องกัน NocoBase จึงมีฟังก์ชันการตรวจสอบความถูกต้องของฟิลด์ให้ใช้งานครับ/ค่ะ ฟังก์ชันนี้แบ่งออกเป็นสองส่วนหลักๆ ได้แก่ การตั้งค่ากฎ (Rule Configuration) และการนำกฎไปใช้งาน (Rule Application)

ฟิลด์ของระบบ NocoBase ได้รวมกฎของ Joi เข้าไว้ด้วยกัน โดยรองรับการใช้งานดังนี้ครับ/ค่ะ
ฟิลด์ประเภทสตริงของ Joi จะตรงกับฟิลด์ประเภทต่างๆ ใน NocoBase ดังนี้ครับ/ค่ะ: ข้อความบรรทัดเดียว (Single Line Text), ข้อความหลายบรรทัด (Long Text), เบอร์โทรศัพท์ (Phone), อีเมล (Email), URL, รหัสผ่าน (Password) และ UUID
ฟิลด์ประเภทตัวเลขของ Joi จะตรงกับฟิลด์ประเภทต่างๆ ใน NocoBase ดังนี้ครับ/ค่ะ: จำนวนเต็ม (Integer), ตัวเลข (Number) และเปอร์เซ็นต์ (Percentage)
นอกจากกฎทั่วไปแล้ว ฟิลด์ประเภทจำนวนเต็มยังรองรับการตรวจสอบจำนวนเต็ม (Integer Validation) และการตรวจสอบจำนวนเต็มที่ไม่ปลอดภัย (Unsafe Integer Validation) เพิ่มเติมอีกด้วยครับ/ค่ะ

นอกจากกฎทั่วไปแล้ว ฟิลด์ประเภทตัวเลขและเปอร์เซ็นต์ยังรองรับการตรวจสอบความแม่นยำ (Precision Validation) เพิ่มเติมอีกด้วยครับ/ค่ะ

ฟิลด์ประเภทวันที่ของ Joi จะตรงกับฟิลด์ประเภทต่างๆ ใน NocoBase ดังนี้ครับ/ค่ะ: วันที่ (พร้อมเขตเวลา) (Date with timezone), วันที่ (ไม่มีเขตเวลา) (Date without timezone), เฉพาะวันที่ (Date only) และ Unix Timestamp
กฎการตรวจสอบที่รองรับ:
ฟิลด์ความสัมพันธ์รองรับเฉพาะการตรวจสอบแบบ "ต้องระบุ" (Required Validation) เท่านั้นครับ/ค่ะ โปรดทราบว่าการตรวจสอบแบบ "ต้องระบุ" สำหรับฟิลด์ความสัมพันธ์ยังไม่รองรับการใช้งานในสถานการณ์ที่เป็นแบบฟอร์มย่อย (Sub-form) หรือตารางย่อย (Sub-table) ในขณะนี้

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

กฎการตรวจสอบยังสามารถใช้ได้กับคอมโพเนนต์ตารางย่อย (Sub-table) และแบบฟอร์มย่อย (Sub-form) ด้วยครับ/ค่ะ


โปรดทราบว่าในสถานการณ์ที่เป็นแบบฟอร์มย่อย (Sub-form) หรือตารางย่อย (Sub-table) การตรวจสอบแบบ "ต้องระบุ" สำหรับฟิลด์ความสัมพันธ์จะยังไม่ทำงานครับ/ค่ะ

การตรวจสอบความถูกต้องของฟิลด์ฝั่งไคลเอนต์ (Client-Side Field Validation) และฝั่งเซิร์ฟเวอร์ (Server-Side Field Validation) เหมาะสมกับสถานการณ์การใช้งานที่แตกต่างกันครับ/ค่ะ ทั้งสองมีข้อแตกต่างที่สำคัญในด้านวิธีการนำไปใช้และช่วงเวลาที่กฎถูกเรียกใช้งาน ดังนั้นจึงจำเป็นต้องมีการจัดการแยกกัน

