michielkempen / laravel-morphable
1.2.0
2021-03-31 10:06 UTC
Requires
- php: ^7.4|^8.0
- laravel/framework: ^6.0|^7.0|^8.0
Requires (Dev)
- orchestra/testbench: ^6.0
This package is auto-updated.
Last update: 2024-08-29 04:49:11 UTC
README
一个特性,可以将Eloquent模型根据类型字段转换为子类。
安装
将此包添加到应用程序的依赖中
composer require michielkempen/laravel-morphable
使用方法
将 Morphable
特性添加到您的模型中,并添加 factory
和 typeField
属性。typeField
属性是可选的,默认为 type
。factory
属性是必须的,需要包含继承自 MorphableModelFactory
接口类的路径。
<?php use Illuminate\Database\Eloquent\Model; use MichielKempen\LaravelMorphable\Morphable; use App\UserModelFactory; class User extends Model { use Morphable; public $factory = UserModelFactory::class; public $typeField = 'role'; }
<?php use Illuminate\Database\Eloquent\Model; use \MichielKempen\LaravelMorphable\MorphableModelFactory; class UserModelFactory implements MorphableModelFactory { public static function create(string $type): Model { if($type == 'admin') { return app(Manager::class); } return app(Customer::class); } }
<?php class Manager extends User { // manager specific methods }
<?php class Customer extends User { // customer specific methods }
安全
如果您发现任何安全相关的问题,请通过电子邮件 kempenmichiel@gmail.com 向我们报告,而不是使用问题跟踪器。
致谢
许可证
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件。