Laravel - 向数组添加类属性

Posted

技术标签:

【中文标题】Laravel - 向数组添加类属性【英文标题】:Laravel - add a class attribute to array 【发布时间】:2021-02-11 21:14:33 【问题描述】:

在我的 Eloquent 模型中,我添加了一个类属性:

/**
 * @return bool
 */
public function getIsViewable()

    return $this->isViewable;

这个属性没有保存在数据库中,因为它只是一个计算值。

在我的控制器中,我有一个此对象的 Eloquent 集合,我将其转换为数组:

$images = $query->get();
$images = $images->toArray();

如何将类属性属性添加到数组中的每个图像项?

【问题讨论】:

也许laravel.com/docs/8.x/… 会有所帮助 【参考方案1】:
    方法应该命名为getMyVariableAttribute,即。 getIsViewableAttribute 在模型上添加以下protected $appends = ['is_viewable'],以便在序列化时获取计算属性。

【讨论】:

【参考方案2】:

您的方法名称缺少Attribute 部分。将getIsViewable() 重命名为getIsViewableAttribute()

/**
 * @return bool
 */
public function getIsViewableAttribute()

    return $this->isViewable;

https://laravel.com/docs/8.x/eloquent-mutators#defining-an-accessor

【讨论】:

以上是关于Laravel - 向数组添加类属性的主要内容,如果未能解决你的问题,请参考以下文章

如何向元类实例添加属性?

向 python 类添加动态属性失败

__metaclass__ 向创建的类添加无效属性?

有没有办法禁止从类的实例向类添加属性?

mypy 错误:向抽象方法添加类型时无法使用抽象属性实例化抽象类

使用匹配类属性上的关联向命令对象添加参数