为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
弑天下 2023-07-08 17:31:57
我的数据库中有一个列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()


查看完整回答
反对 回复 2023-07-08
  • 1 回答
  • 0 关注
  • 68 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信