Laravel Eloquent:仅在模型类中重命名字段

Laravel Eloquent:仅在模型类中重命名字段,laravel,eloquent,field,naming-conventions,alias,Laravel,Eloquent,Field,Naming Conventions,Alias,我有一个表,其中有许多字段的名称不正确,并且包含很多下划线“\ux” 我只想在类中重命名它们(或给它们别名),而不想在表中重命名,因为这个表被其他应用程序使用,所以我不想在数据库中进行更改 这是我想要的一个例子: $model->fooBarWtfMan 我所拥有的: $model->foo_bar_wtf_man 我想要的是: $model->fooBarWtfMan 我不认为在db名称中使用\uu很糟糕,但这里有一个简单的方法: // BaseModel extend

我有一个表,其中有许多字段的名称不正确,并且包含很多下划线“\ux” 我只想在类中重命名它们(或给它们别名),而不想在表中重命名,因为这个表被其他应用程序使用,所以我不想在数据库中进行更改

这是我想要的一个例子:

$model->fooBarWtfMan
我所拥有的:

$model->foo_bar_wtf_man
我想要的是:

$model->fooBarWtfMan

我不认为在db名称中使用
\uu
很糟糕,但这里有一个简单的方法:

// 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;
这是通用的解决方案。如果您还想处理“坏名字”,那么您需要为每个坏名字提供访问器