gpt4 book ai didi

javascript - 如何拆分数组并仅将特定值保存到数据库中? Laravel 与 Ajax

转载 作者:行者123 更新时间:2023-12-02 21:42:18 26 4
gpt4 key购买 nike

我有一个问题。我需要将数组保存到数据库中,但我需要先将其划分并仅保存特定值。我正在使用 Ajax 并将数据传递给 Controller ​​。

ps:数组集合可以超过1个,因此每个集合需要根据DB内的列进行拆分和存储。

我的包含 Ajax 的 javascript:

Hotspot.prototype.saveData = function (data) {
if (!data.length) {
return;
}

// Get previous data
var raw_data = localStorage.getItem(this.config.LS_Variable);

var hotspots = [];

if (raw_data) {
hotspots = JSON.parse(raw_data);
}

// Append to previous data
$.each(data, function (index, node) {
hotspots.push(node);
});
console.log(hotspots);

// var field=JSON.stringify(hotspots).split(',');
this.data=data;
$.ajax({
type:"POST",
url:"/store",
dataType:'json',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data:{
Title: JSON.stringify(hotspots),
Message: JSON.stringify(hotspots),
x: JSON.stringify(hotspots),
y: JSON.stringify(hotspots),
},
success: function(data){

console.log(data,d);
},
error: function(data)
{
console.log(data);
},

});

localStorage.setItem(this.config.LS_Variable, JSON.stringify(hotspots));

this.element.trigger('afterSave.hotspot', [null, hotspots]);
};

Controller :

public function storePin(Request $request)
{
request()->validate([
'Title' => 'required',
'Message' => 'required',
'x'=> 'required',
'y'=>'required',
]);

dd($request);
if ($request->all())
{
$pin = new Pin();
$pin->Title=json_encode($request->input('Title'));
$pin->Message= json_encode($request->input('Message'));
$pin->x = json_encode($request->input('x'));
$pin->y =json_encode($request->input('y'));

$pin->save();
// return response()->json_encode($request);

}

}

示例输出:

Title: [{"x":58.333333333333336,"y":90.54545454545455,"Title":"hi","Message":"hi"}]
Message: [{"x":58.333333333333336,"y":90.54545454545455,"Title":"hi","Message":"hi"}]
x: [{"x":58.333333333333336,"y":90.54545454545455,"Title":"hi","Message":"hi"}]
y: [{"x":58.333333333333336,"y":90.54545454545455,"Title":"hi","Message":"hi"}]

基于此我只希望它只存储:

Title:only save title
Message:save message
x:save x
y save y

最佳答案

只需传入整个热点数组,例如:

data: hotspots,

然后在您的模型中进行任何格式化并插入许多:

// some formatting to create data array
$data = [];
foreach($hotspots as $hotspot){
$data[] = [
'Title' => $hotspot['Title'],
'Message' => $hotspot['Message'],
'x' => $hotspot['x'],
'y' => $hotspot['y'],
];
}

Pin::insert($data);

关于javascript - 如何拆分数组并仅将特定值保存到数据库中? Laravel 与 Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60340410/

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