#php #arrays #laravel #api #associate
#php #массивы #laravel #API #ассоциировать
Вопрос:
На данный момент я создаю приложение с помощью flutter, но мой контроллер Laravel api не возвращает соответствующий многомерный массив. Я хотел бы иметь {[0]=> array,[1] =>array и т.д.}. Если кто-нибудь знает исправление для этого, было бы высоко оценено
public function index()
{
$payments = Payment::all();
return $payments;
}
И он возвращает это:
[
{
"id": 1,
"description": "test",
"price": "9.00",
"currency": "EUR",
"status": "open",
"deleted_at": null,
"created_at": "2020-08-10T09:50:52.000000Z",
"updated_at": "2020-08-10T09:50:52.000000Z"
},
{
"id": 2,
"description": "test",
"price": "3.00",
"currency": "USD",
"status": "open",
"deleted_at": null,
"created_at": "2020-08-13T19:06:23.000000Z",
"updated_at": "2020-08-13T19:06:23.000000Z"
}
]
Я много пробовал, это помогло мне лучше всего, но потом я получил 1: {ARRAY}
код, который я пробовал:
public function index()
{
$data = [];
$payments = Payment::all();
$id=1;
foreach($payments as $payment){
array_push($data,[$id=>$payment]);
$id ;
}
return $data;
}
Результат:
[
{
"1": {
"id": 1,
"description": "test",
"price": "9.00",
"currency": "EUR",
"status": "open",
"deleted_at": null,
"created_at": "2020-08-10T09:50:52.000000Z",
"updated_at": "2020-08-10T09:50:52.000000Z"
}
},
{
"2": {
"id": 2,
"description": "test",
"price": "3.00",
"currency": "USD",
"status": "open",
"deleted_at": null,
"created_at": "2020-08-13T19:06:23.000000Z",
"updated_at": "2020-08-13T19:06:23.000000Z"
}
}
]
Я хотел бы иметь:
{
1:{
"message":"test",
"price":"9"
"currency":"EUR"
},
2:{
"message":"test",
"price":"9"
"currency":"EUR"
}
}
Комментарии:
1. пожалуйста, докажите код, который пытался
2. Я предоставил 2 кода, которые я пробовал, но ничего не сработало
Ответ №1:
Попробуйте также это
public function index(){
$payments = Payment::all();
return response()->json([$payments]);
}
Комментарии:
1. это возвращает то же самое с дополнительным [] в начале
2. какой формат JSON вам нужен? [ { «коды»:[], «имена»:[] } ] или любой другой?
3. мне нужен индексированный многомерный массив, поэтому [0] =>{«id»: 1, «description»: «test», «price»: «9.00», «currency»: «EUR», «status»: «open», «deleted_at»: null, «created_at»: «2020-08-10T09:50:52.000000Z», «updated_at»: «2020-08-10T09:50:52.000000Z», «updated_at»: «2020-08-10T09:50 :52.000000Z» }
Ответ №2:
Попробуйте этот
public function index()
{
$payments = Payment::get()->toArray();
return $payments;
}
Комментарии:
1. К сожалению, это возвращает то же самое