【问题标题】:Customizable model file for a Laravel 5 packageLaravel 5 包的可定制模型文件
【发布时间】:2018-09-01 04:24:05
【问题描述】:

我正在开发一个 Laravel 5 包,其中我有一个 “会员”模型,它目前 扩展了 App\User 模型。我想知道最佳实践,让任何开发人员使用自定义“成员”模型,而不是包中的模型。例如,这是为了允许开发人员使用另一个表。

一种似乎可以在没有进行深入测试的情况下工作的方法是在我的包服务提供者的 register() 方法中创建一个别名:

$MemberModel = 'MyVendor\MyPackage\Member';
$loader = \Illuminate\Foundation\AliasLoader::getInstance();
$loader->alias('MyMember', $MemberModel);

在这种情况下,我必须:

  • 将代码中的所有条目从原始类替换为别名
  • 删除所有相关的php“使用”条目
  • 从配置文件或数据库中获取 $MemberModel 的值

但我不知道这是解决它的好方法还是可能导致任何冲突。

对于这个目标还有其他更好的方法吗?提前致谢!

【问题讨论】:

    标签: laravel laravel-5


    【解决方案1】:

    我最终不得不自己测试这种方法,而没有在其他任何地方阅读过解决方案,但无论如何,在我的源代码中一切似乎都运行良好。

    如果有人想要做类似的事情,我的问题中的代码示例可以工作,因为 $MemberModel 是用一个值定义的。如果您想从模型实例中获取该值,就像我一样,您必须在服务提供者的 boot() 方法中添加该代码。

    【讨论】:

      猜你喜欢
      • 2015-06-23
      • 2017-12-25
      • 2015-08-08
      • 1970-01-01
      • 2017-02-17
      • 2015-05-07
      • 1970-01-01
      • 2015-07-25
      • 2015-03-12
      相关资源
      最近更新 更多