【问题标题】:Laravel - Can't create Accessor for field named 'edge_50mm'Laravel - 无法为名为“edge_50mm”的字段创建访问器
【发布时间】:2018-10-23 16:28:21
【问题描述】:

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

如果有任何帮助或建议,我将不胜感激。谢谢。

【问题讨论】:

  • 尝试dd()单个模型,找到laravel设置的属性名称如dd(Product::first());
  • 如果您发布一些代码可能会有所帮助,这可能是一个简单的错误,但在不知道您目前拥有什么的情况下确实有知道的方法。
  • getEdge50mmAttribute 应该可以正常工作。

标签: php laravel eloquent accessor


【解决方案1】:

这是不可重现的。 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"

【讨论】:

    猜你喜欢
    • 2016-12-12
    • 1970-01-01
    • 2014-07-13
    • 1970-01-01
    • 2019-05-25
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    相关资源
    最近更新 更多