進度條

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',

       ]);

     }

     .....

     .....

}