在Laravel中扩展雄辩的模型(使用不同的表)

我正在构建一个Laravel应用程序,它涉及跟踪不同类型的潜在客户。例如,有再融资线索购买线索

由于Lead共享很多信息和功能,但不是全部,我的想法是创建一个Lead类,扩展Laravel的模型类,然后创建一个RefiniteLead类,扩展Lead

所以我会:

类领导扩展模型
{
//共享潜在客户资料
}
类再融资扩展了潜在客户
{
//特定于再融资线索的东西
}

我的问题是:

  1. 这个策略有意义吗
  2. 如果是这样的话,雄辩公司将如何处理这些数据?我会有一个潜在客户表和一个再融资\u潜在客户表吗
  3. RequiredElead类的新实例是否会利用leads表中的任何内容

我在通过文档回答这个问题时遇到困难,但是如果我错过了解释的地方,请让我知道。谢谢

1。是的,在父模型中拥有所有通用功能是非常有意义的

2.基本上,每个雄辩的模型都将处理protected$table变量中定义的自己的表中的数据。可以重写父变量,为所有不同的子模型设置单独的表。Laravel表名

例如,如果对再融资lead实例使用getId()方法,它将从再融资lead表返回id。如果在PurchadeLead实例上使用它,它将从purchade_表重新生成id

类领导扩展模型
{
公共函数getId(){
返回$this->id;
}
}
类再融资扩展了潜在客户
{
受保护的$table=‘再融资_线索’;
}
类PurchaseLead扩展了Lead
{
受保护的$table='购买线索';
}

3.我不知道您的确切需求是什么,但一般来说,我建议将Lead类抽象化,这样您就不会为它关联一个表。仅用于分离常见功能、关系等。。。
当然,正如评论中所建议的,实现一个接口总是一个好主意

抽象类Lead扩展模型实现LeadContract
{
//阶级团体
}

发表评论