gpt4 book ai didi

laravel - 如何在 2 个 Eloquent 模型之间共享功能

转载 作者:行者123 更新时间:2023-12-03 09:26:22 24 4
gpt4 key购买 nike

我有 2 个 Eloquent 模型:项目和任务。它们都有截止日期,我有 3 个与截止日期相关的函数,两个类都必须具有,但我不想有重复的代码。

我想到的唯一解决方案是将 Eloquent 扩展到某个类 DeadlineEloquent,并使用这个新类扩展 Project 和 Task。但这听起来不像是最好的解决方案,据我所知,Laravel 没有地方存储此类类(它不是模型,我不知道它是什么)。在这种情况下你会如何处理?

最佳答案

Laravel 并没有真正存储任何内容的地方,您可以自由地对应用程序文件夹和文件执行任何您需要的操作。但是,如果您仍然有 app/models 文件夹,则可以创建一个 BaseModel 并将其存储在其中。这是大多数人会选择的方式:

class BaseModel extends Eloquent {

public function whatever()
{

}

}

class Project extends BaseModel {

}

class Project extends BaseModel {

}

如果您使用的是 PHP 5.5,则可以使用特征:

trait Functions {

public function whatever()
{

}

}

class Project extends BaseModel {

use Functions;

}

class Project extends BaseModel {

use Functions;

}

关于laravel - 如何在 2 个 Eloquent 模型之间共享功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20832152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com