logologo
เริ่มต้น
คู่มือ
การพัฒนา
ปลั๊กอิน
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
เริ่มต้น
คู่มือ
การพัฒนา
ปลั๊กอิน
API
logologo
ภาพรวม

แหล่งข้อมูล

การจัดการแหล่งข้อมูล
แหล่งข้อมูลหลัก

แหล่งข้อมูลภายนอก (ฐานข้อมูล)

บทนำ
MySQL ภายนอก
MariaDB ภายนอก
PostgreSQL ภายนอก
MSSQL ภายนอก
Oracle ภายนอก
เปรียบเทียบฐานข้อมูลหลักและภายนอก
แหล่งข้อมูล REST API
แหล่งข้อมูล KingbaseES

ตารางข้อมูล

ภาพรวม
ตารางทั่วไป
ตารางสืบทอด
ตารางไฟล์
ตารางแบบต้นไม้
ตารางปฏิทิน
ตารางความคิดเห็น
ตารางนิพจน์
ตาราง SQL
วิวฐานข้อมูล

ฟิลด์ตารางข้อมูล

ภาพรวม
การตรวจสอบฟิลด์

ประเภทพื้นฐาน

ข้อความบรรทัดเดียว
ข้อความหลายบรรทัด
หมายเลขโทรศัพท์
อีเมล
URL
จำนวนเต็ม
ตัวเลข
เปอร์เซ็นต์
รหัสผ่าน
สี
ไอคอน

ประเภทการเลือก

บูลีน
ดรอปดาวน์ (เลือกเดี่ยว)
ดรอปดาวน์ (เลือกหลายรายการ)
ปุ่มตัวเลือก
ช่องทำเครื่องหมาย

มัลติมีเดีย

Markdown
Markdown(Vditor)
Rich Text
ไฟล์แนบ (ความสัมพันธ์)
ไฟล์แนบ (URL)

วันที่และเวลา

ภาพรวม
วันที่และเวลา (มีโซนเวลา)
วันที่และเวลา (ไม่มีโซนเวลา)
Unix Timestamp
วันที่ (ไม่มีเวลา)
เวลา

รูปทรงเรขาคณิต

จุด
เส้น
วงกลม
รูปหลายเหลี่ยม

ประเภทขั้นสูง

UUID
Nano ID
การเรียงลำดับ
สูตรคำนวณ
รหัสอัตโนมัติ
JSON
ตัวเลือกตารางข้อมูล
การเข้ารหัส

ข้อมูลระบบ

วันที่สร้าง
วันที่แก้ไขล่าสุด
สร้างโดย
แก้ไขล่าสุดโดย
เนมสเปซ
Table OID

ประเภทความสัมพันธ์

ภาพรวม
หนึ่งต่อหนึ่ง
หนึ่งต่อหลาย
หลายต่อหนึ่ง
หลายต่อหลาย
หลายต่อหลาย (อาร์เรย์)

การพัฒนา

ภาพรวม
Previous Pageภาพรวม
Next Pageข้อความบรรทัดเดียว
TIP

เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ

#การตรวจสอบความถูกต้องของฟิลด์

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

#การตั้งค่ากฎ (Rule Configuration)

20250819181342

ฟิลด์ของระบบ NocoBase ได้รวมกฎของ Joi เข้าไว้ด้วยกัน โดยรองรับการใช้งานดังนี้ครับ/ค่ะ

#ประเภทสตริง (String Type)

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

#กฎทั่วไป (Common Rules)

  • ความยาวขั้นต่ำ (Min length)
  • ความยาวสูงสุด (Max length)
  • ความยาวที่กำหนด (Length)
  • รูปแบบ (Pattern / Regular Expression)
  • ต้องระบุ (Required)

#อีเมล (Email)

20250819192011 ดูตัวเลือกเพิ่มเติม

#URL

20250819192409 ดูตัวเลือกเพิ่มเติม

#UUID

20250819192731 ดูตัวเลือกเพิ่มเติม

#ประเภทตัวเลข (Number Type)

ฟิลด์ประเภทตัวเลขของ Joi จะตรงกับฟิลด์ประเภทต่างๆ ใน NocoBase ดังนี้ครับ/ค่ะ: จำนวนเต็ม (Integer), ตัวเลข (Number) และเปอร์เซ็นต์ (Percentage)

#กฎทั่วไป (Common Rules)

  • มากกว่า (Greater than)
  • น้อยกว่า (Less than)
  • ค่าสูงสุด (Max value)
  • ค่าต่ำสุด (Min value)
  • พหุคูณ (Multiple)

#จำนวนเต็ม (Integer)

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

#ตัวเลขและเปอร์เซ็นต์ (Number & Percentage)

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

#ประเภทวันที่ (Date Type)

ฟิลด์ประเภทวันที่ของ Joi จะตรงกับฟิลด์ประเภทต่างๆ ใน NocoBase ดังนี้ครับ/ค่ะ: วันที่ (พร้อมเขตเวลา) (Date with timezone), วันที่ (ไม่มีเขตเวลา) (Date without timezone), เฉพาะวันที่ (Date only) และ Unix Timestamp

กฎการตรวจสอบที่รองรับ:

  • มากกว่า (Greater than)
  • น้อยกว่า (Less than)
  • ค่าสูงสุด (Max value)
  • ค่าต่ำสุด (Min value)
  • การตรวจสอบรูปแบบ Timestamp (Timestamp Format Validation)
  • ต้องระบุ (Required)

#ฟิลด์ความสัมพันธ์ (Association Fields)

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

#การนำกฎการตรวจสอบไปใช้งาน (Applying Validation Rules)

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

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

20250819202357

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

#ความแตกต่างจากการตรวจสอบความถูกต้องของฟิลด์ฝั่งไคลเอนต์ (Client-Side Field Validation)

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

#ความแตกต่างของวิธีการตั้งค่า (Configuration Method Differences)

  • การตรวจสอบฝั่งไคลเอนต์ (Client-side validation): ตั้งค่ากฎในฟอร์มแก้ไข (Edit Form) (ดังแสดงในภาพด้านล่าง)
  • การตรวจสอบฟิลด์ฝั่งเซิร์ฟเวอร์ (Server-side field validation): ตั้งค่ากฎสำหรับฟิลด์ใน แหล่งข้อมูล (Data Source) → การตั้งค่าคอลเลกชัน (Collection Configuration) 20250819203836

20250819203845

#ความแตกต่างของช่วงเวลาที่เรียกใช้งานการตรวจสอบ (Validation Trigger Timing Differences)

  • การตรวจสอบฝั่งไคลเอนต์ (Client-side validation): จะเรียกใช้งานการตรวจสอบแบบเรียลไทม์ทันทีที่ผู้ใช้กรอกข้อมูลในฟิลด์ และแสดงข้อความข้อผิดพลาดทันที
  • การตรวจสอบฟิลด์ฝั่งเซิร์ฟเวอร์ (Server-side field validation): จะตรวจสอบข้อมูลที่ฝั่งเซิร์ฟเวอร์ก่อนที่จะบันทึกลงฐานข้อมูล หลังจากที่มีการส่งข้อมูลแล้ว โดยข้อความข้อผิดพลาดจะถูกส่งกลับมาทาง API Response
  • ขอบเขตการใช้งาน (Application scope): การตรวจสอบฟิลด์ฝั่งเซิร์ฟเวอร์จะมีผลไม่เพียงแค่ตอนส่งฟอร์มเท่านั้น แต่ยังถูกเรียกใช้งานในทุกสถานการณ์ที่เกี่ยวข้องกับการเพิ่มหรือแก้ไขข้อมูล เช่น เวิร์กโฟลว์ (Workflow) และการนำเข้าข้อมูล (Data Import)
  • ข้อความข้อผิดพลาด (Error messages): การตรวจสอบฝั่งไคลเอนต์รองรับการกำหนดข้อความข้อผิดพลาดเองได้ แต่การตรวจสอบฝั่งเซิร์ฟเวอร์ยังไม่รองรับการกำหนดข้อความข้อผิดพลาดเองในขณะนี้