如何在字段名称包含数字的模型中定义访问器?

时间:2018-09-18 09:09:09

标签: php laravel laravel-5

我正在尝试在用户模型中为已经存在的字段定义访问器。在我的数据库中,该字段称为address_line_1。但是,因为字段名称包含数字,所以我不确定如何使Laravel识别“行”后有下划线。

通常定义下划线,您会使用驼峰式,但是在这种情况下则不能。我已经检查了Laravel文档,但是没有提到此问题。下面是我当前的代码:

public function getAddressLine1Attribute($value){
    return empty($value) ? '' : decrypt($value);
}

我也尝试过使用函数名getAddress_Line_1AttributegetAddressLine_1Attribute,但这不起作用。

我该如何解决?

1 个答案:

答案 0 :(得分:2)

Laravel 5.7调用此函数来检查get mutator是否存在:

 /**
 * Determine if a get mutator exists for an attribute.
 *
 * @param  string  $key
 * @return bool
 */
public function hasGetMutator($key)
{
    return method_exists($this, 'get'.Str::studly($key).'Attribute');
}

'get'.Str::studly('address_line_1').'Attribute' === 'getAddressLine1Attribute'

所以看来您的方法名称是正确的。