我的数据库中有一个列Started_Trading__c。我正在努力使用该领域的访问器。到目前为止,我已经尝试过以下方法,但没有成功。public function getStartedTrading_cAttribute()public function getStartedTrading__cAttribute()public function getStarted_Trading__cAttribute()public function getStarted_Trading_cAttribute()让访问器使用这种类型的具有 2 个连续下划线的列名的有效方法是什么__c?不幸的是,我无法控制数据库列名称,所以理想情况下我想让它工作。谢谢
1 回答
慕村225694
TA贡献1880条经验 获得超4个赞
Laravel 使用Str::class来处理字符串,对于其变元的名称,它使用方法camel。
以下字符串都将导致getStartedTradingCAttribute
Str::camel('get started trading c attribute')
Str::camel('get started_trading_c attribute')
Str::camel(' get started___trading__________c attribute')
Str::camel('get____started __ trading __c ___attribute')
您需要声明的方法是getStartedTradingCAttribute()
更多详情(方法简单)
public static function camel($value)
{
return lcfirst(static::studly($value));
}
public static function studly($value)
{
$key = $value;
$value = ucwords(str_replace(['-', '_'], ' ', $value));
return str_replace(' ', '', $value);
}
如您所见,所有_(下划线)都被替换为 (空格),然后什么都没有studly()
- 1 回答
- 0 关注
- 90 浏览
添加回答
举报
0/150
提交
取消