使用挂钩和/或事件来减少两个模块之间的耦合-Laravel

问题描述

在下面的示例中,如何避免耦合:我们有两个模块:

  • 客户
  • 发票

发票模块具有“发票”模型,该模型具有与“客户”模块的“客户”模型异样(属于)。

如何在“客户编辑”部分中显示客户发票列表,而不生成链接?我的想法是在客户编辑视图中标记一个“挂钩”区域,以便能够使用发票模块的ServiceProvider中的DataTable注入HTML。

同样,如果试图从“客户”模块中删除客户,我的目的是传播事件,以便所有需要它的模块都可以执行操作。

对于雄辩的关系,我正在考虑使用resolveRelationUsing:

Customer::resolveRelationUsing ('invoices',function ($customer) {
    return $customer->hasMany (Invoice::class);
}); 

这是整个系统的好习惯吗?这是避免耦合的有效方法吗?

例如,如果发票模块必须在客户模块的客户模型中添加一个字段... ,我应该怎么做?也许使用钩子将字段添加到视图中,并使用客户端控制器的update方法中的事件来了解何时从发票模块中更新新字段?

我的目的是创建尽可能独立的模块,以便能够消除其中的一个并使应用程序正常工作。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...