Можно ли представить массив объектов? - PullRequest
0 голосов
/ 20 мая 2019

Я использую Laravel 5.3, и у меня возникают проблемы при отправке массивов объектов на мой контроллер.Является ли это возможным?И если нет, то есть ли обходной путь, чтобы я мог отправить несколько объектов одновременно?

Пример запроса:

let req = {
    'data[]': [
        { id: 1, name: 'test1' },
        { id: 2, name: 'test2' }
    ]
};

Затем, чтобы проверить, я просто возвратил содержимое запроса:

public function testArray(Request $request) {
    return response()->json($request->all());
}

И получил такой результат:

data: [
    "[object Object]",
    "[object Object]"
]

Ответы [ 3 ]

1 голос
/ 21 мая 2019

В твоих js

let req = [
    { id: 1, name: 'test1' },
    { id: 2, name: 'test2' }
];

var baseurl = window.location.protocol + "//" + window.location.host;
$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});
$.ajax({
    url: baseurl + "/test-data",
    type: 'post',
    data:{
        req:req
    },
    cache: false,
    success: function(response) {
        console.log(response);
    }
});

В контроллере:

public function testArray(Request $request) {
     $post = $request->all();

     return response()->json($post);
}

В файле маршрута: (web.php)

Здесь я использовал DemoController, который вы можете заменить именем контроллера

Route::post('/test-data', 'DemoController@testArray');

Результат:

req: (2) […]
​​
0: Object { id: "1", name: "test1" }
​​
1: Object { id: "2", name: "test2" }
​​
length: 2
0 голосов
/ 21 мая 2019

return часто возникают проблемы при отображении объектов / массивов. Попробуйте просто:

dd($request->all())

вместо return, вы будете удивлены:)

0 голосов
/ 20 мая 2019

В вашем случае результат - это массив объектов, результат [0] - это первый объект.Например, чтобы получить доступ к идентификатору, вы должны использовать результат [0] ['id'].Вы можете использовать цикл for, например, для просмотра реальных данных.

Также я думаю, что вы можете использовать json_encode.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...