gpt4 book ai didi

laravel - 为所有 eloquent 模型添加方法的最佳方式

转载 作者:行者123 更新时间:2023-12-05 00:17:51 25 4
gpt4 key购买 nike

我有 last()我的一个模型上的方法。

class Article extends Model
{
public function last()
{
return Article::orderBy('created_at', 'desc')->first();
}
}

我想在我的其他模型上使用相同的方法。这样做的最佳方法是什么?

最佳答案

您可以通过两种方式解决此问题。

使用您在所有其他模型中扩展的抽象类而不是 Model .

use Illuminate\Database\Eloquent\Model;

abstract class BaseModel extends Model
{
public static function last() {
return static::orderBy('created_at', 'desc')->first()
}
}

所以你将拥有以下内容
class Article extends BaseModel
{

}

或者更恰本地说,正如您所指出的,具有特征
trait Lastable {

public static function last()
{
return static::orderBy('created_at', 'desc')->first();
}

}

您在所需的类中使用的。
class Article extends Model {
use Lastable;
}

关于laravel - 为所有 eloquent 模型添加方法的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39302051/

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