gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 10:41:18 25 4
gpt4 key购买 nike

我正在应用程序中使用完整的日历开源库。我在后端使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com