【问题标题】:Laravel add custom method for all eloquent modelsLaravel 为所有 eloquent 模型添加自定义方法
【发布时间】:2017-09-19 14:52:43
【问题描述】:

我正在寻找一种方法来添加一些将在所有模型中使用的自定义方法。我可以想象 3 种方法:

  1. 在 Eloquent 的 Model.php 主类文件中添加自定义方法(我想避免这样做,因为这是一个核心文件)
  2. 使用所需的自定义方法创建自定义模型类,该方法将扩展到 eloquent 的 Model 类,并且项目中的所有模型都将扩展到自定义模型类。
  3. 添加一个具有我的方法并将其包含在所有模型中的特征

但是,我希望以更有效和最好的方式来做这件事。他们还有其他方法吗?

PS 我使用 laravel 5.2 作为它的旧项目。

【问题讨论】:

  • #1 绝对是一个糟糕的方法。 #2 和 #3 都是很好的方法。如果字面上的所有模型(包括您的应用程序将拥有的任何未来模型)需要额外的功能,我会使用#2,如果只有一些需要额外的功能,我会使用#3。
  • 感谢@ceejayoz :)

标签: laravel laravel-5 eloquent laravel-5.2 laravel-eloquent


【解决方案1】:

根据评论讨论并添加我在 Laravel 中的经验,我建议您使用 @ceejayoz 在 cmets 中指定的 #2 或 #3 方法

第一个绝对是一种不好的方法,因为您需要修改核心,这根本不是一个好习惯。第二个和第三个都是很好的方法。

但是,在此之前,您需要检查您的要求,如果实际上所有模型(包括您的应用将拥有的任何未来模型)都需要额外功能,但是您可以为所有模型使用特征。

如果我可以选择,我可能会选择特征而不是自定义模型,因为特征相对简单,然后自定义模型

【讨论】:

  • 如果您已经解决了您的问题或有疑问,请不要投反对票,然后发布适当的答案,以便其他人可以从您的问题中获得帮助,谢谢 :)
  • 请接受答案,以便可以关闭这个问题谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-18
  • 2023-03-09
  • 2016-12-22
  • 1970-01-01
  • 2015-09-23
  • 2011-04-24
相关资源
最近更新 更多