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