Php 如果列有两个连续的下划线,则使用访问器或mutator

Php 如果列有两个连续的下划线,则使用访问器或mutator,php,laravel,laravel-7,Php,Laravel,Laravel 7,我的数据库中有一列Started\u Trading\u c。我正在努力为这个字段使用访问器。到目前为止,我尝试了以下方法,但没有成功 公共函数getStartedTrading\u CatAttribute() 公共函数getStartedTrading\uu cAttribute() public function getstart\u Trading\u cAttribute() public function getstart\u Trading\u cAttribute() 要让访问者

我的数据库中有一列
Started\u Trading\u c
。我正在努力为这个字段使用访问器。到目前为止,我尝试了以下方法,但没有成功

公共函数getStartedTrading\u CatAttribute()

公共函数getStartedTrading\uu cAttribute()

public function getstart\u Trading\u cAttribute()

public function getstart\u Trading\u cAttribute()

要让访问者使用这种具有两个连续下划线的列名,有效的方法是什么

不幸的是,我无法控制数据库的列名,所以理想情况下我希望能够实现这一点


感谢

Laravel使用
Str::class
来处理字符串,因为它使用了方法
camel

以下字符串都将导致
GetStartedTradingCatAttribute

Str::camel('get started trading c属性')
Str::camel('get started\u trading\u c属性')
Str::camel('get started\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
Str::camel('get\uuuuuuuuuuuuuuuuuuuu started\uuuuuuuuu trading\uuuuuu c\uuuuuuuuuu attribute')
您需要声明的方法是
GetStartedTradingCatAttribute()

有关更多详细信息(方法已简化)

公共静态函数驼峰($value)
{
返回lcfirst(static::studly($value));
}
公共静态函数studly($value)
{
$key=$value;
$value=ucwords(str_replace(['-',''.'],'.$value));
返回str_replace(“”,,$value);
}

如您所见,所有的
\u
(下划线)都替换为
(空格),然后
studly()

中没有任何内容。您是否尝试过
getStartedTradingCAttribute
谢谢,这很有效@N69S@N69S平心而论,这是否意味着拉威尔对下划线漠不关心?您应该将此作为答案添加。@JesseOrange这里是完整答案