Входной массив внутри json от ajax не работает должным образом в laravel - PullRequest
1 голос
/ 19 января 2020

Я использую Semanti c UI и Laravel 6

Я получил этот html код:

<div class="field">
    <label for="realTime">Tiempo real</label>
    <input type="text" id="realTime" name="schedules[{{ $service->id_service }}][realTime]" required/>
</div>
<div class="field">
    <label for="delayTime">Tiempo de demora</label>
    <input type="text" id="delayTime" name="schedules[{{ $service->id_service }}][delayTime]" required/>
</div>
<div class="field">
    <label for="deathTime">Tiempo muerto</label>
    <input type="text" id="deathTime" name="schedules[{{ $service->id_service }}][deathTime]" required/>
</div>

И я посылаю эту информацию по ajax используя этот код:

$.ajax({
    url: "...",
    data: {
        "formData": $(formClass).form('get values')
    },
    success: function (response) {
        // skipped code
    }
});

Но когда я вывожу данные запроса в контроллер, используя:

dd($request->input('formData'));

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

array:1 [
  "formData" => array:1 [
    "schedules[1" => array:3 [
      "realTime" => "12:00:00"
      "delayTime" => "13:00:00"
      "deathTime" => "14:00:00"
    ]
  ]
]

Вместо :

array:1 [
  "formData" => array:1 [
    "schedules" => array:1 [
      1 => array:3 [
         "realTime" => "12:00:00"
         "delayTime" => "13:00:00"
         "deathTime" => "14:00:00"
      ]
    ]
  ]
]

Я проверил отправленный контент, показанный на вкладке Заголовки (используя Chrome), и нашел это:

formData[schedules[1][realTime]]: 12:00:00
formData[schedules[1][delayTime]]: 13:00:00
formData[schedules[1][deathTime]]: 14:00:00

Я также понял, что если я поставлю имя как "schedules][{{ $service->id_service }}][realTime]" (ставя дополнительную закрывающую скобку после «расписаний»), дамп правильно отображает массив.

Есть ли решение?

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