我正在开发Laravel 5软件包,其中有一个“成员”模型,该模型当前扩展了App \ User 模型。我想知道最佳做法,让任何开发人员都可以使用自定义“成员” 模型,而不是软件包中的模型。例如,这是为了允许开发人员使用另一个表。
似乎没有进行深入测试的一种可行方法是在我的包服务提供者中使用register()方法创建别名:
$MemberModel = 'MyVendor\MyPackage\Member';
$loader = \Illuminate\Foundation\AliasLoader::getInstance();
$loader->alias('MyMember', $MemberModel);
在这种情况下,我必须:
但是我不知道这是否是解决它的好方法,否则可能会引起任何冲突。
是否有其他更好的方法可以实现此目标?预先感谢!
答案 0 :(得分:0)
我最终不得不自己测试这种方法,而无需在其他地方阅读解决方案,但是无论如何,一切似乎在我的源代码中都可以正常工作。
如果有人想做类似的事情,那么我问题中的代码示例将起作用,因为 $ MemberModel 是用值定义的。如果要像我一样从模型实例获得该值,则必须将该代码添加到服务提供商的 boot()方法中。