首页 > 解决方案 > 使用 Laravel 时计算字段的好做法是什么?

问题描述

想象一下,我有一个带有 first_name 和 last_name 的模型。如果我想要计算的属性“全名”,我会看到 2 个解决方案:

1) 模型中的访问器

public function getFullNameAttribute()
{
    return "{$this->first_name} {$this->last_name}";
}

2)使用资源

例如 :

class UserResource extends JsonResource
{
    public function toArray($request)
    {
        return [
            'full_name' => "{$this->first_name} {$this->last_name}"
        ....

还有其他解决方案吗?我对这个好的选择有点困惑。这两种解决方案的优缺点是什么?你在你身边用什么?

标签: laravel

解决方案


您也可以创建自己的函数

public function getFullName()
{ 
    return "{$this->first_name} {$this->last_name}";
}

数组函数主要在创建 API 时使用(不是规则)

public function toArray($request)
{
    return [
        'full_name' => "{$this->first_name} {$this->last_name}"
    ....

最常见的解决方案是使用 getter:

public function getFullNameAttribute()
{
    return "{$this->first_name} {$this->last_name}";
}

所以结论是......没有“最佳解决方案”,所有这些都可以正常工作,程序员会采用不同的方式来获取数据。


推荐阅读