Laravel为所有雄辩的模型添加自定义方法

时间:2017-09-19 14:52:44

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

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

  1. 将自定义方法添加到主Eloquent的Model.php类文件中(我想避免这样做,因为这是一个核心文件)
  2. 使用所需的自定义方法创建自定义模型类,这将扩展到eloquent的Model类,项目中的所有模型都将扩展到自定义模型类。
  3. 添加一个具有我的方法并将其包含在所有模型中的特征
  4. 但是,我希望以更有效和最好的方式做到这一点。他们还有其他办法吗?

    PS我正在使用laravel 5.2作为一个旧项目。

1 个答案:

答案 0 :(得分:1)

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

第一个肯定是一个糟糕的方法,因为你需要修改核心,这根本不是一个好习惯。第二和第三都是好方法。

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

如果我有选择,我可能会选择自定义模型的特性,因为特征比自定义模型相对简单