Many To Many (ok)
https://viblo.asia/p/eloquent-relationships-in-laravel-phan-1-PdbGnoEdeyA
Many To Many
many-to-many, mối quan hệ hơi phức tạp hơn so với hasOne
và hasMany
. Một ví dụ cho mối quan hệ này như là 1 user sẽ có nhiều roles và 1 role cũng sẽ thuộc về nhiều user. Để xác định relationship này, cần thiết phải có 3 bảng: users, roles và user_role. Bảng user_role sẽ chứa 2 column user_id và role_id.
Quan hệ many-to-many được định nghĩa bằng cách gọi phương thức belongsToMany
dựa trên Eloquent class. Ví dụ, hãy định nghĩa phương thức roles
trên User
model.
Một khi các mối quan hệ được xác định, bạn có thể truy cập vào roles
bằng cách truy cập dynamic property:
Dĩ nhiên, giống như tất cả các relationship khác, bạn có thể gọi phương thức roles
và tiếp tục cho thêm vào các query:
Như đã đề cập trước đó, để xác định tên bảng của bảng tham gia vào relationship, Eloquent sẽ join 2 model liên quan theo thứ tự của bảng chữ cái. Tuy nhiên, bạn cũng có thể ghi đè quy ước này. Bạn có thể làm như vậy bằng cách thêm vào 1 đối số thứ 2 trong phương thức belongsToMany
như sau:
Ngoài tùy biến trên, bạn có thể tùy biến các tên cột của các keys bằng cách truyền thêm đối số cho phương thức belongsToMany
. Đối số thứ 3 là tên foreign key mà bạn đang xác định relationship, trong khi đối số thứ 4 là tên foreign key trong model mà bạn đang join đến.
Last updated