Model 繼承 inheritance 造成的 Relation morphMap enforceMorphMap 問題
更新日期:Relation::enforceMorphMap 搭配繼承 Model 會有轉換問題
(Laravel 7 以前為 Relation::morphMap)
Relation::enforceMorphMap([
'user' => 'App\Models\User',
// 'user' => 'App\Models\SpecialUser', <= 無法這樣寫
]);
解決方法為,在 SpecialUser class 中加上
class SpecialUser extends User
{
protected static function boot()
{
parent::boot();
......
......
self::loadMorphMap();
}
protected static function loadMorphMap()
{
Relation::morphMap([
'user' => 'App\Models\SpecialUser',
]);
}
.....
.....
}