我试图使其他应用程序更容易读取多态关系的存储值.目前,多态模型类型存储为模型的FQCN.使用Laravel Docs中的示例,imageable_type可以是"App\Product"或"App\Staff".但是,如果任何非基于此约定并且也访问同一数据库的非laravel应用程序,则此值可能会更难管理.此外,如果模型FQCN曾被重构,则必须修改其他应用程序以考虑更改.
有没有办法将类型更改为更一致和可读的东西,然后有一个映射类将键映射到模型?(例如将"产品"映射到"App\Product")
是.这是最近实施的变更.
将此添加到您的服务提供商(在boot
方法中):
Illuminate\Database\Eloquent\Relations\Relation::morphMap([
'product' => App\Product::class
]);
Run Code Online (Sandbox Code Playgroud)
如果您只是传递一个模型名称数组,它将默认使用表名:
Illuminate\Database\Eloquent\Relations\Relation::morphMap([
App\Product::class,
App\Staff::class,
]);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1136 次 |
最近记录: |