我可以使用lalvel 4的camelCase雄辩吗?

时间:2013-09-03 04:29:28

标签: laravel laravel-4 eloquent

我在mysql数据库中有现有数据,其列是camelCased。我无法将它们改为蛇案。

例如:当我尝试使用“jobRole”时,我得到“job_role”。我希望它是“jobRole”。

laravel中是否有设置支持此功能?我读过有关变异器但却不理解它们的内容。这是解决方案吗?如果是这样,我该怎么做?

3 个答案:

答案 0 :(得分:18)

发现你可以做到这一点。

在模型中,将“snakeAttributes”重新定义为“false”,如下所示:

class YourModel extends Eloquent{
    public static $snakeAttributes = false;
}

答案 1 :(得分:1)

你现在可以。我刚刚完成了一个包,允许你在camelCase中完全使用模型属性,如果需要的话。

https://github.com/kirkbushell/eloquence

按正常方式安装软件包:

composer require kirkbushell/eloquence ~1.0

然后设置服务提供商:

'KirkBushell\Eloquence\EloquenceServiceProvider',

然后你需要做的就是设置Eloquent指向新类作为application / config / app.php中别名的一部分:

'Eloquent' => 'KirkBushell\Eloquence\Database\Model',

这确保了库基本上是替代品。如果您只想测试一些模型,您可以简单地扩展Eloquence基础模型类:

class MyModel extends \KirkBushell\Eloquence\Database\Model

我构建这个类主要是因为我厌倦了在javascript应用程序中看到snake_case,还在我们的服务器端代码中。这确保了无处不在(前端和后端)处理骆驼外壳。

答案 2 :(得分:0)

你不能害怕。这个错误:https://github.com/laravel/laravel/issues/788解释了更多,但是它的长短是你需要字段名称全部小写才能使模型工作。