javascript - Laravel 返回不同的字段名称?

标签 javascript php laravel naming

我正在应用程序中使用完整的日历开源库。我在后端使用 Laravel。现在大多数 JavaScript 库在其变量名中都使用 comeCase。问题是,在后端,Laravel 在表中有一个命名约定,我猜它使用 underscored_in_the_column_name。

现在,create() 方法非常方便,它可以使用输入数据创建一个新资源,而且我不必手动分配多个字段。但现在由于我正在使用该库,它以驼峰命名法发送数据,这对双方来说都是一个问题,因为当我将数据从服务器返回到日历时,我再次必须确保字段采用驼峰命名法而不是下划线之间的下划线。

我该怎么做?有没有办法在 Laravel 中完成这个任务,还是我必须手动完成?

最佳答案

据我所知,您基本上有两个选择:

1。将数据库更改为驼峰命名法

snake_case 只是 Laravel 的约定,不需要有这样的列名称。因此,您只需将名称更改为驼峰命名法并将模型中的 $snakeAttributes 选项设置为 false:

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

然后您应该能够使用驼峰命名法属性名称create()get()您的模型。

<小时/>

2。重写一些方法

如果您想保持数据库表原样,您将必须重写模型中的一些方法:

首先,对于数组/JSON转换:

public function toArray(){
    $array = parent::toArray();
    $renamed = [];
    foreach($array as $key => $value){
        $renamed[camel_case($key)] = $value;
    }
    return $renamed;
}

然后设置和获取单个属性:

public function getAttribute($key){
    $key = snake_case($key);
    return parent::getAttribute($key);
}

public function setAttribute($key, $value){
    $key = snake_case($key);
    parent::setAttribute($key, $value);
}

关于javascript - Laravel 返回不同的字段名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28769546/

相关文章:

javascript - 如何让 Twitter 和 Facebook 按钮水平对齐?

php - filter_var 与 preg_match

php - 如何使电子邮件在 php imap 函数中不可见

php - laravel @include 不工作

php - Laravel 动态下拉国家和州

javascript - 找到两个数组的可用组合(排列?)

javascript - HTML 更改后加载 jQuery

javascript - 使用函数列表 knockout foreach

php - 在 laravel 中查找与标签关联的所有帖子

php - 在 laravel 中使用 ajax 提交表单时找不到 404