【问题标题】:Can I use camelCase with Laravel 4 eloquent?我可以在 Laravel 4 eloquent 中使用 camelCase 吗?
【发布时间】:2013-09-03 04:29:27
【问题描述】:

我在 mysql 数据库中有现有数据,其列是驼峰式的。我不能把它们改成蛇形盒。

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

laravel 中有设置支持这个吗?我读过关于突变体的文章,但不理解它们。那是解决方案吗?如果是这样,我该怎么做?

【问题讨论】:

    标签: laravel laravel-4 eloquent


    【解决方案1】:

    发现你可以做到这一点。

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

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

    【讨论】:

    • 感谢这是使 Accessors & Mutators 与骆驼案例数据库列一起工作所必需的
    【解决方案2】:

    现在可以了。如果需要,我刚刚完成了一个包,它允许您完全在 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。这确保了所有地方(前端和后端)都在处理骆驼外壳。

    【讨论】:

      【解决方案3】:

      你不能,我害怕。这个错误:https://github.com/laravel/laravel/issues/788 解释了更多,但总而言之,您需要将字段名称全部小写才能使模型工作。

      【讨论】:

        猜你喜欢
        • 2021-09-01
        • 2013-09-10
        • 1970-01-01
        • 2015-11-23
        • 1970-01-01
        • 2014-07-07
        • 1970-01-01
        • 2015-05-14
        • 1970-01-01
        相关资源
        最近更新 更多