Массив в строку в данных Aarax Laravel

Я отправляю свои данные на контроллер через Ajax, но на бэкэнде я получаю Array to string conversion.

контроллер

<?php

public function updateimages(Request $request){
$updateDetails=array(
'image_alt' => $request->get('image_alt')
);

$updateIds=array(
'id' => $request->get('id')
);

$images = DB::table('photos')
->where([$updateIds])
->update([$updateDetails]);

return response()->json(['updated' => $images], 200);
}

Ajax

<script type="text/javascript">
$(document).ready(function() {
$(".SaveImage").on('click', function(e) {
e.preventDefault();
e.stopPropagation();

var idmess= [];
$(".photohe").each(function(){
idmess.push($(this).val());
});

var image_alt= [];
$(".image_alt").each(function(){
image_alt.push($(this).val());
});

console.log(idmess);
console.log(image_alt);
$.ajax({
url: '{{ url('admin/savemulti') }}',
type: 'POST',
dataType: "JSON",
data: {
"id": idmess,
"image_alt": image_alt,
"_method": 'POST',
"_token": "{{ csrf_token() }}",
},
success:function(data) {
var message = "Image Updated successfully!"$('.saved').append(message);
}
});
});
});
</script>

Вот как мой контроллер dd получает данные:

array:4 [
"id" => array:2 [
0 => "1045"1 => "1046"]
"image_alt" => array:2 [
0 => "mage 1"1 => "image 2"]
"_method" => "POST""_token" => "SParC5rwYy0KLLhwa0km7fcZvodSqrzhvyqZUqk3"]

Это должно обновить это как:

1045 = mage 1
1046 = image 2

Есть идеи как это исправить?

1

Решение

Вы не можете делать несколько обновлений так, как вы делаете в приведенном выше коде. Вы добавляете идентификаторы и данные для обновления отдельно в двух массивах.

Вы должны изменить свой код примерно так.

public function updateimages(Request $request){
$ids = $request->get('id');
$updateImages = $request->get('image_alt');

foreach($ids as $key => $value){
DB::table('photos')
->where('id',$value)
->update(['image_alt'=>$updateImages[$key]]);
}

return DB::table('photos')->whereIn('id',ids)->get();
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]