Relationship คือ ความสัมพันธ์ ในทาง Database ความสัมพันธ์มีอยู่ด้วยกัน 3 แบบ คือ 1:1 , 1:N , M:N
การสร้างความสัมพันธ์แบบ 1:N
ตัวอย่างนี้ จะสร้างความสัมพันธ์ระหว่าง Race กับ Registration โดย การแข่ง 1 รายการ สามารถมีผู้ลงทะเบียนแข่งขัน ได้หลายคน
ในไฟล์ Race.groovy เปิดไฟล์ และใส่ code เพิ่มไปจากเดิม 1 บรรทัด ตามนี้...
class Race {
ในไฟล์ Race.groovy เปิดไฟล์ และใส่ code เพิ่มไปจากเดิม 1 บรรทัด ตามนี้...
class Race {
//...............
static hasMany = [registrations:Registration]
static hasMany = [registrations:Registration]
String toString(){ return "${name},${startDate.format('MM/dd/yyyy')}" }
}
registrations คือ ชื่อ property ที่แสดงหน้าเว็บ
Registration คือ ชื่อ class
Registration คือ ชื่อ class
toString ใช้แสดงรายละเอียดของ class ในตัวอย่างนี้เราจะให้แสดง ชื่อการแข่งและวันที่แข่ง
สร้างที่ class Race แล้วทีนี้ก็ไปสร้างที่ class Registration บ้างดังนี้...
ใส่เพิ่มไปอีก 1 บรรทัดเช่นกัน
ใส่เพิ่มไปอีก 1 บรรทัดเช่นกัน
class Registration{
//........
static belongsTo = [race:Race]
}
race คือ ชื่อ property ที่แสดงหน้าเว็บส่วนของ Registration
Race คือ ชือ class Race ทีมีความสัมพันธ์ด้วยนั่นเอง
Run applications แล้ว กรอกข้อมูลในส่วน Race และ Registration
ในส่วน Registration มี Race ขึ้นมาให้เลือกแล้ว เราก็เลือก"แข่งวิ่งควาย"
---------------------------------------------------------------
Creating a Many-to-Many Relationship
การสร้างความสัมพันธ์แบบ M:N
การสร้างความสัมพันธ์แบบ M:N
ตัวอย่าง:
เพิ่ม class Runner พิมพ์ grails create-domain-class Runner เพิ่ม code ตามนี้เลย...
เพิ่ม class Runner พิมพ์ grails create-domain-class Runner เพิ่ม code ตามนี้เลย...
class Runner {
static constraints = {
firstName(blank:false)
lastName(blank:false)
dateOfBirth()
gender(inList:["M","F"])
address()
city()
stage()
zipcode()
email(email:true)
}
static hasMany=[registrations:Registration]
String firstName
String lastName
Date dateOfBirth
String gender
String address
String city
String Stage
String zipcode
String email
String toString(){"${lastName},$firstName (${email})"}
}
แก้ไขไฟล์ Registration ตามนี้...
class Registration {
static constraints = {
race()
runner()
paid()
dateCreate()
}
static belongsTo = [race:Race,runner:Runner]
boolean paid
Date dateCreate
}
สร้างไฟล์ controller ของ Runner พิมพ์ grails create-controller Runner
แก้ไขดังนี้...
class RunnerController {
def scaffold = true
}
เพิ่มข้อมูล....
ขอบคุณครับ
ReplyDeleteครับ ^_^
ReplyDelete