我可以在模型中添加新密钥吗?

can i add new key in models?

我想在使用 laravel、

中的模型获得 API 的任何响应时添加密钥

目前,我正在开发一个 API 来获得响应,其中包含一个动态添加的新键。

如果我没记错的话,我猜你正在尝试创建一个 table 中不存在的新字段,但需要使用其中的一些逻辑动态创建,并且你想将该字段传递给您的每一件产品。

如果是这样的话,我猜 Laravel Eloquent 在这种情况下,访问器将是最好的选择。在 Accessor 的帮助下,您可以创建任何类型的字段,并且可以像我们调用其他字段一样调用它。

如需更多参考,请查看此 https://laravel.com/docs/5.7/eloquent-mutators Laravel 文档。

从 Laravel 文档中选取的样本。

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

现在我可以在我的控制器中使用 full_name 或 blade 文件,如 $user->full_name 然后它会给我 first_name 的连接字符串和last_name.

首先在您的模型中添加这个以添加自定义字段

protected $appends = ['is_favorite'];

public function getIsFavoriteAttribute($value)
{
    return $this->name;  // whatever you want add here
}

但是在应用关系和 select 从关系中获取其他模型详细信息时出现问题。

将属性添加到 $appends

class MyModel extends Model {
    ...    
    /**
     * The accessors to append to the model's array form.
     *
     * @var array
     */
    protected $appends = ['extra'];

    public function getExtraAttribute(){
        return "Extra Value";
    }
    ...
}