php - 如何在字段名称包含数字的模型中定义访问器?
问题描述
我正在尝试在我的用户模型中为已经存在的字段定义一个访问器。这个字段address_line_1
在我的数据库中被调用。但是,由于字段名称包含一个数字,我不确定如何让 Laravel 识别“行”之后有一个下划线。
通常要定义下划线,你会使用驼峰式大小写,但在这种情况下你不能。我已经检查了 Laravel 文档,但是没有提到这个问题。以下是我目前的代码:
public function getAddressLine1Attribute($value){
return empty($value) ? '' : decrypt($value);
}
我也试过函数名getAddress_Line_1Attribute
,getAddressLine_1Attribute
但这不起作用。
我怎样才能解决这个问题?
解决方案
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'
所以看来你的方法名称是正确的。
推荐阅读
- javascript - 尝试从 JavaScript 中的 localStorage 查找现有产品时出错
- python - 有没有关于 spyder 报告的文档?
- c++ - 如何在 C++17 中制作模板包装器/装饰器
- shopify - 使用 shopify 液体获取索引(主页)页面产品
- mysql - SQL OR 返回两个表达式
- wifi - 如何在 AsyncTask 的 doInBackground 方法中获取共享首选项
- ionic-framework - 如何使用 Ionic App 的自定义 URL 方案启动外部打开的应用程序?
- vba - 无法过滤 BookingID 的号码和重复
- sharepoint - 使用 REST oData url 访问共享点子站点的列表项
- python - 在 numpy 数组中提取非零值组