使用Eloquent 在Laravel 中實現單表繼承
場景:
你有一個模型名為Post 並希望使用繼承將帖子分為兩種類型:文章和問題。
單表繼承
單表繼承涉及在同一個表中維護所有類型,用一列來區分它們。雖然這種方法可以更簡單,但由於列不適用於所有類型,它可能會導致大量 NULL 值。
多表繼承
多表繼承是一種更清晰的方法,它將資料拆分到多個表中。 postable 欄位表示貼文的類型,postable_id 引用對應表中的主鍵。
在Eloquent 中實現多表繼承
帖子模型:
將可發布關係是多態關係:
問題和文章模型:
為每個貼文類型建立單獨的模型,並與貼文模型建立關係:
用法:
建立一個新問題:
建議:
為了更用戶友好的實現,建議將模型創建邏輯合併到每個模型類中的可重用函數中。
以上是如何使用 Eloquent 在 Laravel 中實現帖子的多表繼承?的詳細內容。更多資訊請關注PHP中文網其他相關文章!