Массив объектов превращается в массив строк после вызова AXIOS в PHP

#javascript #php #axios

#javascript #php #axios

Вопрос:

Я использую Axios для отправки данных POST на PHP. В рамках вызова я также отправляю параметр string , который преобразуется в массив объектов с помощью JOSN.parse() :

 params: {        
    'myParam': JSON.parse(string)
}
 

На данный момент все работает нормально. Строка правильно преобразуется в массив объектов.

Однако, когда параметр отправляется, на стороне PHP массив по-прежнему остается массивом, но объекты становятся строками.

Кто-нибудь имеет представление о том, почему?

Комментарии:

1. Вы спрашиваете, почему вы не можете передавать объекты / классы javascript через POST-запрос?

2. Я хочу, чтобы массив объектов не превращался в массив строк на стороне PHP

3. Можете ли вы привести пример ввода и вывода в соответствии с тем, что вы ожидаете и что вы пробовали?

Ответ №1:

Я решил, что правильный подход заключается в следующем:

Перед вызовом AXIOS применитесь JSON.stringify() к массиву объектов.

 'myParam': JSON.stringify(arrayOfObjects) // this will be the param sent from Axios
 

Затем на стороне PHP, когда вы перехватываете сообщение, используйте json_decode() , чтобы превратить строку в исходный массив объекта.

 json_decode($request->all()['myParam']
 

Чистый и эффективный.