Làm thứ làm cho Laravel Request của bạn thú vị hơn

Laravel Eloquent Model không có khóa chính

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ư:

Laravel Eloquent Model không có khóa chí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

facebook
Seth Phát

Seth Phát

Mình là Phát - biệt danh Seth Phát. Hiện đang là một Sr. Full-Stack Engineer. Mình là một người yêu thích và đam mê lập trình và hiện tại đang theo về phần Web là chủ yếu. Mạnh Back-end và khá Front-end, vẫn đang theo đều cả 2 :v. Còn gì bằng khi được làm những thứ mà mình yêu thích, đam mê ;)

Leave a Reply

Your email address will not be published. Required fields are marked *

Bình luận qua Facebook