我有一张桌子,其中有许多字段名称不好,并且包含很多下划线" _" 我想只在类中重命名它们(或者给它们别名),而不是在它自己的表中重命名,因为这个表被其他应用程序使用所以我不会在数据库中进行更改。
这是我想要的一个例子:
我有什么:
$model->foo_bar_wtf_man
我想要的是什么:
$model->fooBarWtfMan
答案 0 :(得分:2)
我不会在db名称中调用_
,但这里的方法很简单:
// BaseModel extending Eloquent\Model, then other models extend BaseModel
public function __get($key)
{
return (parent::__get($key)) ?: parent::__get(snake_case($key));
}
然后你可以这样做:
// either
$foo->bar_baz_wtf;
// or
$foo->barBazWtf;
这是通用的解决方案。如果您也想处理“坏名称”,那么每个名字都需要访问者。