Я разрабатываю многошаговую форму для Laravel 7 в соответствии с руководством в https://www.5balloons.info/multi-page-step-form-in-laravel-with-validation/.
То, чего я хочу достичь в своем проекте, - это многошаговая форма на основе PHP / Laravel, которая будет собирать данные от пользователей в четырехступенчатой форме и в конце отправлять все собранные данные. Если бы это была простая форма, которая представляет данные в одну красноречивую модель, то это было бы просто. Но я пытаюсь достичь того, чтобы представить данные в различные таблицы, которые связаны с одной основной таблицей через отношение «многие ко многим».
На первом этапе формы у меня есть такие поля, как «имя», «описание», «слоган» и т. Д. c, которые необходимо ввести в основную таблицу под названием «Информация». Используя переменную сеанса, я передаю данные с первого шага на второй, где начинается путаница.
На втором шаге формы я хочу предоставить определенные опции, из которых пользователь может выбирать. Например, поле «Выбор языка», в котором перечислены все данные, доступные в таблице «языки» для пользователя, из которого пользователь может выбрать несколько языков. Таблица (языки) связана с таблицей (информация) в отношении «многие-многие». Из-за этого я должен вставить языки, выбранные пользователем в сводной таблице. Когда я пытаюсь это сделать, я сталкиваюсь с ошибкой:
SQLSTATE [23000]: нарушение ограничения целостности: 1048 Столбец 'info_id' не может быть пустым (SQL: вставить в info_language
(info_id
, language_id
) значения (?, 1))
, когда я пытаюсь выполнить следующие команды
$info = $request->session()->get('info');
$info->fill($request->all());
$info->languages()->sync($request->input('languages')); \\Error is in this line
$request->session('info', $info);
Примечание: Когда я пытаюсь сбросить $info
- Я получаю все данные, которые я заполнил на первом этапе. При попытке вывести дамп $request->all();
- я получаю данные из поля «Языки», выбранного пользователем.