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

时间:2020-01-01 05:58:46

标签: php laravel api product favorites

我想在laravel中使用模型获取API的任何响应时添加密钥,

当前,我正在开发一个API,以获取带有新的动态添加到其中的一键的响应。

3 个答案:

答案 0 :(得分:1)

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

如果是这样的话,我猜想Laravel Eloquent Accessor将是在这种情况下使用的最佳选择。借助Accessor,您可以创建任何类型的字段,并可以像调用其他字段一样来调用它。

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

从Laravel文档中选取的示例。

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

现在,我可以在控制器或刀片文件(如$ user-> full_name)中使用full_name,然后它将为我提供first_name和last_name的串联字符串。

答案 1 :(得分:1)

首先在模型中添加此内容以添加自定义字段

protected $appends = ['is_favorite'];

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

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

答案 2 :(得分:1)

将属性添加到$appends

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