如果在这种情况下,我将array
存入数据库,则尝试将array a string
发送到我的控制器以保存在数据库中。
因此,当data: {'mapData' : arrayAllDrawings},
崩溃时(arrayAllDrawings蜂鸣数组)。但是,当它像这样的data: {'mapData' : 'string'},
这样的字符串被硬编码时,它将直接通过success message
当服务器引发500个内部服务器错误时,来自storage/logs
的错误日志
[2019-03-28 08:40:09] local.ERROR:数组到字符串的转换{“ userId”:1,“ exception”:“ [object](ErrorException(code:0):数组到字符串的转换在C:\ Users \ Merlijn \ AppData \ Roaming \ Composer \ Laravel Projects \ Forum \ vendor \ laravel \ framework \ src \ Illuminate \ Support \ Str.php:354) [stacktrace]
我尝试使用JS
将JS
的{{1}}数组转换为1个长字符串,但仍然给出相同的错误。
例如,JS数组的外观:
.toString()
javascript代码ajax:
2: Array(2)
0: "{"type":"Feature","properties":{},"geometry":
{"type":"Point","coordinates":[4.90694,52.385973]}}"
1: {type: "Name", Status: "Insert pointer name"}
length: 2
__proto__: Array(0)
3: "{"type":"Feature","properties":{},"geometry":
{"type":"Point","coordinates":[4.90694,52.385973]}}"
length: 4
控制器:
function saveInDb() {
if (typeof arrayAllDrawings !== 'undefined' && arrayAllDrawings.length > 0) {
$.ajax({
method: 'POST', said in the route
url: '{{ route('map.store') }}', gave in the route
data: {'mapData' : arrayAllDrawings},
success: function(response){
console.log(response);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(JSON.stringify(jqXHR));
console.log("AJAX error: " + textStatus + ' : ' + errorThrown);
}
});
} else {
alert('The map has nothing on it!')
}
}
答案 0 :(得分:1)
您可以通过使用以下命令将数组转换为字符串来轻松进行管理:
json_encode($your_array); or serialize($your_array);
可以进行反向操作:
json_decode($string); or unserialize($string);
关于上述功能的使用。
答案 1 :(得分:1)
您可以将javascript数组转换为json
JSON.stringify(arrayAllDrawings)
然后您可以使用json的形式获取它,并通过
将此json转换json_encode(json_decode($mapData,true));
,然后存储到数据库中。