Hi các bạn,
Với một số trường hợp ta dùng relationship là many to many, có thể ta cũng ko cần ID để làm khóa chính mà chỉ cần chứa các ID của table khác dưới dạng index là đủ, ví dụ như:
Như ví dụ trên, table GroupMember của mình chỉ có 2 index là GroupID, UserID và ko hề có khóa chính.
Vậy trong Laravel Eloquent, mặc định nó sẽ tự hiểu là có primary key và sẽ luôn incrementing, để apply vụ này cho nó, ta cần phải làm như sau:
Laravel Eloquent Model không có khóa chính
Các bạn cần set 2 properties này trong Model Eloquent của bạn:
/**
Đưa primary key về null vì hiện tại ta ko cần dùng khóa chính nữa
*/
protected $primaryKey = null;
/**
Gắn incrementing thành false, vì table của ta ko có khóa chính và ko tăng dần.
*/
public $incrementing = false;
Save lại và các bạn có thể query thử và test 😀
Kết luận
Với một vài dòng đơn giản này, bạn có thể sử dụng Eloquent Model cho table không có khóa chính (primary key).
Cảm ơn các bạn đã quan tâm theo dõi! 😀
Tìm hiểu thêm Laravel tại: https://sethphat.com/sp-category/lap-trinh/laravel-5-php