Laravel View Composer

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
google+
Seth Phát

Seth Phát

Mình là Phát - biệt danh Seth Sandaru. Hiện đang là một Full-Stack Developer. 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 rất thích chia sẻ những thứ kiến thức liên quan tới lĩnh vực này. Mong các bạn ủng hộ web của mình!

Leave a Reply

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

Bình luận qua Facebook