Я пытаюсь отправить array
на мой контроллер для сохранения в базе данных, если в этом случае я сделаю array a string
, он сохранится в базе данных.
поэтому при data: {'mapData' : arrayAllDrawings},
происходит сбой (arrayAllDrawings является массивом). Но когда он жестко запрограммирован как строка типа data: {'mapData' : 'string'},
, он будет обработан и сохранен в базе данных с success message
Журналы ошибок с storage/logs
, когда сервер выдает 500 внутренняя ошибка сервера
[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
в 1 длинную строку с in JS
с .toString()
, но все равно выдал ту же ошибку.
например, как выглядит массив JS:
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
код JavaScript ajax:
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!')
}
}
контроллер:
public function store(Request $request)
{
// dd($request);
// $mapData = Input::get('mapData');
// dd($mapData);
if(request()->ajax()){
$mapData = Input::get('mapData');
$map = new Map;
$map->user_id = auth()->user()->id;
$map->map = $mapData;
$map->save();
return response()->json(['status' => 'succes', 'message' => 'saved in database','data' => $mapData]);
} else {
return response()->json(['status' => 'fail', 'message' => 'this is not json']);
}
}