如何在 laravel 控制器中迭代这个对象数组?
How do I iterate this array of object in laravel controller?
我对点击按钮进行了 ajax 调用,然后将数组数据发送到控制器。所以这是 ajax 调用:
const saveBtnOnClick = () => {
//e.preventDefault();
loopMarker(poly);
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
url: "{{ route('storeRouteMap') }}",
type: 'POST',
data: {markers: markers},
success: function (response) {
console.log(response);
},
error: function (response) {
console.log("Error " + response);
}
})
}
有效负载开发人员工具中传递的数据如下所示:
markers[0][lat]: 3.2845171928345853
markers[0][long]: 101.8885194254942
markers[0][sequence]: 0
markers[0][route_id]: 5
markers[1][lat]: 3.591580368128944
markers[1][long]: 102.5367127848692
markers[1][sequence]: 1
markers[1][route_id]: 5
在控制器中:
public function store(Request $request): JsonResponse
{
$out = new ConsoleOutput();
$routeMaps = $request->all();
$out->writeln($routeMaps[1]['long']);
try{
foreach($routeMaps as $key=>$value){
$out->writeln($value['lat']);
$out->writeln($value['long']);
$out->writeln($value['sequence']);
$out->writeln($value['route_id']);
}
但是$out->writeln($value['lat'])
给出了错误,未定义的数组键'lat'和$out->writeln($routeMaps[1]['long'])
给出了错误,未定义的数组键1 ;那么这个数组的结构是如何让我迭代的呢?
您正在以键值形式传递数据,即 markers: markers
。所以你在控制器中的请求参数就像:$request->markers
。
您需要遍历 $request->markers
.
$routeMaps = $request->markers;
foreach($routeMaps as $key => $value){
$out->writeln($value['lat']);
$out->writeln($value['long']);
$out->writeln($value['sequence']);
$out->writeln($value['route_id']);
}
希望这会奏效:)
我对点击按钮进行了 ajax 调用,然后将数组数据发送到控制器。所以这是 ajax 调用:
const saveBtnOnClick = () => {
//e.preventDefault();
loopMarker(poly);
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
url: "{{ route('storeRouteMap') }}",
type: 'POST',
data: {markers: markers},
success: function (response) {
console.log(response);
},
error: function (response) {
console.log("Error " + response);
}
})
}
有效负载开发人员工具中传递的数据如下所示:
markers[0][lat]: 3.2845171928345853
markers[0][long]: 101.8885194254942
markers[0][sequence]: 0
markers[0][route_id]: 5
markers[1][lat]: 3.591580368128944
markers[1][long]: 102.5367127848692
markers[1][sequence]: 1
markers[1][route_id]: 5
在控制器中:
public function store(Request $request): JsonResponse
{
$out = new ConsoleOutput();
$routeMaps = $request->all();
$out->writeln($routeMaps[1]['long']);
try{
foreach($routeMaps as $key=>$value){
$out->writeln($value['lat']);
$out->writeln($value['long']);
$out->writeln($value['sequence']);
$out->writeln($value['route_id']);
}
但是$out->writeln($value['lat'])
给出了错误,未定义的数组键'lat'和$out->writeln($routeMaps[1]['long'])
给出了错误,未定义的数组键1 ;那么这个数组的结构是如何让我迭代的呢?
您正在以键值形式传递数据,即 markers: markers
。所以你在控制器中的请求参数就像:$request->markers
。
您需要遍历 $request->markers
.
$routeMaps = $request->markers;
foreach($routeMaps as $key => $value){
$out->writeln($value['lat']);
$out->writeln($value['long']);
$out->writeln($value['sequence']);
$out->writeln($value['route_id']);
}
希望这会奏效:)