Custom Polymorphic Types
https://viblo.asia/p/eloquent-relationships-in-laravel-phan-2-aRBvXWEokWE
Theo mặc định, Laravel sẽ sử dụng tên lớp đầy đủ để lưu trữ các loại model có liên quan. Ví dụ, với các ví dụ ở trên, nơi một comment
có thể thuộc về một Post
hoặc một Video
, commentable_type
mặc định sẽ là một trong hai App\Post
hoặc App\Video
tương ứng. Tuy nhiên, bạn có thể muốn tách cơ sở dữ liệu của bạn từ cấu trúc bên trong của ứng dụng của bạn. Trong trường hợp đó, bạn có thể xác định một mối quan hệ "morph map" để hướng dẫn Eloquent để sử dụng một tên tùy chỉnh cho mỗi model thay vì tên lớp:
Bạn có thể đăng ký morphMap
trong các boot
function của AppServiceProvider
của bạn hoặc tạo ra một service provider riêng biệt nếu bạn muốn.
Last updated