首页 > 解决方案 > Laravel - 无法为名为“edge_50mm”的字段创建访问器

问题描述

我有一个Product带有字段' edge_50mm'的模型。问题是当我Accessor为那个名为 的字段创建时getEdge50mmAttribute,它不起作用。我认为这是因为字段名称中的数字 50。我也尝试过使用大写 M like getEdge50MmAttribute,但没​​有成功。名称中没有数字的其他字段的访问器工作。

我将不胜感激任何帮助或建议。谢谢。

标签: phplaraveleloquentaccessor

解决方案


这是不可重现的。Laravel 使用他们 studly case helper 来转换属性的名称并检查一个 mutator:

> Str::studly('edge_50mm'); 
"Edge50mm"

因此,edge_50mm 和 edge50mm 的工作方式相同。

function getEdge50mmAttribute() {
    return 'Hello World';
}

例子:

> $model->edge50mm
"Hello World"
> $model->edge_50mm
"Hello World"

推荐阅读