Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel为所有雄辩的模型添加自定义方法_Laravel_Laravel 5_Eloquent_Laravel 5.2_Laravel Eloquent - Fatal编程技术网

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

Laravel为所有雄辩的模型添加自定义方法,laravel,laravel-5,eloquent,laravel-5.2,laravel-eloquent,Laravel,Laravel 5,Eloquent,Laravel 5.2,Laravel Eloquent,我正在寻找一种方法来添加一些将在所有模型中使用的自定义方法。我可以想象三种方法: 将自定义方法添加到main Eloquent的Model.php类文件中(我希望避免这样做,因为这是一个核心文件) 使用所需的自定义方法创建自定义模型类,该类将扩展到eloquent的模型类,并且项目中的所有模型将扩展到自定义模型类 添加一个将包含我的方法并包含在所有模型中的特性 然而,我希望能以最好的方式更有效地完成这项工作。他们还有别的办法吗 PS我正在使用laravel 5.2作为一个老项目。根据评论讨论并添

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

  • 将自定义方法添加到main Eloquent的Model.php类文件中(我希望避免这样做,因为这是一个核心文件)
  • 使用所需的自定义方法创建自定义模型类,该类将扩展到eloquent的模型类,并且项目中的所有模型将扩展到自定义模型类
  • 添加一个将包含我的方法并包含在所有模型中的特性
  • 然而,我希望能以最好的方式更有效地完成这项工作。他们还有别的办法吗


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

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

    第一种方法肯定是不好的,因为您需要修改核心,这根本不是一个好的实践。第二和第三都是好方法

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


    如果我有选择的话,我可能会选择traits而不是定制模型,因为traits相对简单,那么定制模型肯定是个糟糕的方法#2和#3都是很好的方法。如果所有型号(包括你的应用程序将来会有的任何型号)都需要额外的功能,我会使用#2,和#3如果他们中只有一些人愿意。谢谢@ceejayoz:)如果你已经解决了你的问题或疑问,请不要投反对票,然后发布适当的答案,以便其他人可以从你的问题中获得帮助谢谢:)请接受答案,这样这个问题就可以结束谢谢:)