Polymorphic Relations (Cấu trúc bảng)

https://viblo.asia/p/eloquent-relationships-in-laravel-phan-2-aRBvXWEokWE

Polymorphic Relations

Cấu trúc bảng

Quan hệ đa hình cho phép 1 model thuộc về nhiều hơn 1 model khác. Ví dụ, hãy tưởng tượng users của ứng dụng của bạn có thể "comments" cả post và video. Sử dụng các mối quan hệ đa hình, bạn có thể sử dụng 1 bảng comments duy nhất cho cả 2. Trước tiên, hãy kiểm tra các cấu trúc bảng cần thiết để xây dựng mối quan hệ này.

posts
    id - integer
    title - string
    body - text

videos
    id - integer
    title - string
    url - string

comments
    id - integer
    body - text
    commentable_id - integer
    commentable_type - string

Hai cột quan trọng cần lưu ý là cột commentable_idcommentable_type trong bảng comments. Cột commentable_id sẽ chứa giá trị id của post hoặc video. Trong khi cột commentable_type sẽ chứa tên lớp của model sở hữu. Cột commentable_type là cách ORM xác định "type" của model sở hữu sẽ trả về khi truy cập vào các mối quan hệ commentable.

Last updated