Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 返回不同的字段名Laravel?_Javascript_Php_Laravel_Naming - Fatal编程技术网

Javascript 返回不同的字段名Laravel?

Javascript 返回不同的字段名Laravel?,javascript,php,laravel,naming,Javascript,Php,Laravel,Naming,我正在应用程序中使用完整的日历开源库。我在后端使用Laravel。现在大多数JavaScript库在其变量名中使用cameCase。问题是,在后端,我猜Laravel在表中有一个命名约定,在列名称中使用下划线 现在create()方法非常方便,它可以随着输入数据的到来创建一个新的资源,我不必手动分配多个字段。但现在,由于我正在使用库,它将数据作为camelCase发送,这是一个双向问题,因为当我将数据从服务器返回到日历时,我必须再次确保字段在camelCase中,而不是在它们之间加下划线 我该怎

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

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


我该怎么做?有没有办法在Laravel中实现这一点,或者我必须手动完成?

在我看来,您基本上有两种选择:

1.将数据库更改为camelCase snake_案例只是Laravel的惯例,它不需要像那样有你的列名。因此,您只需将名称更改为camelCase,并将模型中的
$snakeAttributes
选项设置为false:

class MyModel extends Eloquent {
    public static $snakeAttributes = false;
}
然后您应该能够
create()
get()
使用camelCase属性名称创建模型


2.覆盖某些方法 如果希望保持db表的状态,则必须覆盖模型中的某些方法:

首先,对于数组/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);
}

试试答案@MattBurrow你也可以用Laravel的。e、 g.
snake\u case()