如果列有 2 个连续下划线,则使用访问器或修改器

我的数据库中有一个列Started_Trading__c。我正在努力使用该领域的访问器。到目前为止,我已经尝试过以下方法,但没有成功。

public function getStartedTrading_cAttribute()

public function getStartedTrading__cAttribute()

public function getStarted_Trading__cAttribute()

public function getStarted_Trading_cAttribute()

让访问器使用这种类型的具有 2 个连续下划线的列名的有效方法是什么__c

不幸的是,我无法控制数据库列名称,所以理想情况下我想让它工作。

谢谢



弑天下
浏览 92回答 1
1回答

慕村225694

Laravel 使用Str::class来处理字符串,对于其变元的名称,它使用方法camel。以下字符串都将导致getStartedTradingCAttributeStr::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()
打开App,查看更多内容
随时随地看视频慕课网APP