Page 45 - Laravel5_v1
P. 45
้
การสราง Mutators
้
้
็
Mutators กคือ setter นั นเอง คลายกันกับ Accessors คือ เราสามารถสราง attribute ที ไม่ใช่ attribute ในฐานขอมูลได โดยเมธอดที สราง
้
้
้
็
ั
้
้
์
ขึ นนั นจะเปนการรบค่าพารามิเตอรเขามาเพื อ set ค่าใหกับ attribute ของ Models
ํ
้
้
้
้
ื
ขอกาหนดของ Mutators คือ ชอเมธอดจะตองขึ นตนดวยคําว่า set และลงทายดวยคําว่า Attribute ดังตัวอย่าง
้
้
class User extends Model {
public function setPasswordAttribute($password)
{
return $this->attributes['password'] = Hash::make($password);
}
}
เวลาเขาถึงหรอเรยกใชงาน Mutators กใหตัด set และ Attribute ออกไปเหลือแค่ password (ตัวพิมพเล็ก) เช่น
์
้
้
็
ี
ื
้
$user->password = '123456';
การกําหนด Eloquent relations
ู
ี
้
้
่
็
์
์
การกําหนดความสัมพันธของ Eloquent นั นเปนการกําหนดว่ามีตารางใดบางในฐานขอมูลทมีความสัมพันธกันอยู รปแบบของ
ื
ความสัมพันธหรอ relations ที ใชบ่อยๆ มีดังต่อไปนี
์
้
One To One ความสัมพันธแบบหนึ งต่อหนึ ง
์
์
One To Many ความสัมพันธแบบหนึ งต่อกลุม หรอเรยกว่า Belongs To Relation กได ้
็
ี
่
ื
์
่
่
Many To Many ความสัมพันธแบบกลุมต่อกลุม
้
์
ี
้
การกําหนด Relation เราจะสรางเมธอดเพิ มที Models ที มีความสัมพันธกัน เช่น หากตารางใดมีความสัมพันธแบบหนึ งต่อหนึ งกใหเรยกใช ้
์
็
็
้
์
เมธอด hasOne() และอีกตารางที เชอมไปกใหกําหนดเปน belongsTo() พรอมทั งระบุ FK ที ใชดวย เช่นเดียวกันหากมีความสัมพันธเปน
้
้
้
็
็
ื
ื
แบบ One To Many จะกําหนดเปน hasMany() และตารางที เชอมกันกจะใช belongsTo() หรอเราเรยก belongsTo() อีกอย่างหนึ งว่า การ
ี
ื
็
้
็
inverse ความสัมพันธกได ส่วนความสัมพันธแบบ Many To Many ใหกาหนดเปน belongsToMany() ทั งสองฝงครบ
ั
ํ
็
ั
์
็
์
้
้
้
์
ในหนังสือเล่มนี จะยกตัวอย่างความสัมพันธที ใชบ่อยที สุดไดแก่ One To Many นั นเอง (ความสัมพันธแบบ One To One ดูไดจากวิดีโอใน
้
้
์
ื
บทที 7 เรองการทํา User Profiles)