За последние 24 часа нас посетили 22714 программистов и 1042 робота. Сейчас ищут 646 программистов ...

При ошибке валидации и дальнейшем 302 редиректе теряются динамические поля формы

Тема в разделе "Laravel", создана пользователем Сереганек, 25 апр 2021.

Метки:
  1. Сереганек

    Сереганек Активный пользователь

    С нами с:
    18 янв 2017
    Сообщения:
    333
    Симпатии:
    27
    Нужна подсказка как это лучше реализовать.
    Есть blade страница с формой для отправки данных. В форме есть кнопка для динамического добавления полей. По сути передаются массивы данных. Я им даю нейм типа такого:
    Код (Text):
    1. name="sections[0].list_items[0]"
    Данные передаю не аяксом, а обычным сабмитом. Если валидацию не проходит, после 302 редиректа, заполняю форму старыми данными. Но есть проблема.
    После редиректа пропадают все динамически созданные поля, т.к. я их создаю скриптом. Можно ли как-то после этого редиректа получить доступ ко всем отправленным данным чтобы в цикле прорисовать все айтемы (тем же js), которые были добавлены динамически? Хотя тогда мне не удастся использовать blade функцию old(). Или же может эти поля можно как-то восстановить средствами blade, но тогда нужно как-то в ГЕТ запрос на редирект (который срабатывает автоматически если есть ошибка валидации) передать все эти поля.
    В общем подскажите, как это сделать грамотно. А то лезут в голову какие-то костыльные идеи типа использования кукиз или хедеров для редиректа.

    Я кстати смотрел что лежит в $request уже на входе в контроллер по редирект - там уже нет данных из формы. И в принципе это логично, т.к. форма отправляет пост запрос из данными в бади, а при ошибке валидации редирект срабатывает на гет, и у него уже нет бади.
     
    #1 Сереганек, 25 апр 2021
    Последнее редактирование: 25 апр 2021
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.551
    Симпатии:
    1.754
    По идее, все данные, в том числе и массивы, записываются в сессию, откуда их берёт old. Так что с её помощью можно вытащить и это
     
    Сереганек нравится это.
  3. Сереганек

    Сереганек Активный пользователь

    С нами с:
    18 янв 2017
    Сообщения:
    333
    Симпатии:
    27
    Все верно, можно из олд все получить. Задача решена.