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

时间:2014-11-27 12:01:31

标签: laravel eloquent field naming-conventions alias

我有一张桌子,其中有许多字段名称不好,并且包含很多下划线" _" 我想只在类中重命名它们(或者给它们别名),而不是在它自己的表中重命名,因为这个表被其他应用程序使用所以我不会在数据库中进行更改。

这是我想要的一个例子:

我有什么:

$model->foo_bar_wtf_man

我想要的是什么:

$model->fooBarWtfMan

1 个答案:

答案 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;

这是通用的解决方案。如果您也想处理“坏名称”,那么每个名字都需要访问者