friendsofhyperf / model-morph-addon
The model morph addon for Hyperf.
Package info
github.com/friendsofhyperf/model-morph-addon
pkg:composer/friendsofhyperf/model-morph-addon
v3.2.0
2026-06-07 13:32 UTC
Requires
- hyperf/database: ~3.2.0
- hyperf/di: ~3.2.0
This package is auto-updated.
Last update: 2026-06-07 13:48:12 UTC
README
The model morph addon for Hyperf.
Installation
composer require friendsofhyperf/model-morph-addon
Before
<?php namespace App\Model; class Image extends Model { public function imageable() { return $this->morphTo(); } } class Book extends Model { public function images() { return $this->morphMany(Image::class, 'imageable'); } } class User extends Model { public function images() { return $this->morphMany(Image::class, 'imageable'); } } // Global Relation::morphMap([ 'user' => App\Model\User::class, 'book' => App\Model\Book::class, ]);
After
<?php namespace App\Model; class Image extends Model { public function imageable() { return $this->morphTo(); } // Privately-owned public static function getActualClassNameForMorph($class) { $morphMap = [ 'user' => User::class, 'book' => Book::class, ]; return Arr::get($morphMap, $class, $class); } } class Book extends Model { public function images() { return $this->morphMany(Image::class, 'imageable'); } public function getMorphClass() { return 'book'; } } class User extends Model { public function images() { return $this->morphMany(Image::class, 'imageable'); } public function getMorphClass() { return 'user'; } }