Хранить значение, которое хранится в сеансе laravel - PullRequest
0 голосов
/ 30 ноября 2018

На сайте действует система бронирования, сначала клиент должен заполнить форму запроса на бронирование.После нажатия кнопки «Далее» пользователь будет перемещен в сводку бронирования, где он сможет просмотреть сводку бронирования.Я использовал session()->put для хранения полей, которые были введены в форму запроса на бронирование.Это работает нормально

$request->session()->put('firstName', $request->firstName);
$request->session()->put('lastName', $request->lastName);
$request->session()->put('phoneNumber', $request->phoneNumber);

Моя проблема в том, что после того, как клиент нажмет Подтвердить в сводке бронирования, я не могу сохранить значения, введенные в форме запроса на бронирование, в базе данных.Значения в форме запроса на бронирование должны храниться в базе данных только после того, как клиент нажал кнопку Подтвердить в сводке бронирования.

  $client_info = new client;
  $client_info->firstName = $request->session()->put('firstName', $request->firstName);
  $client_info->lastName = $request->session()->put('lastName', $request->lastName);
  $client_info->phoneNumber = $request->session()->put('phoneNumber', $request->phoneNumber);
  $client_info->emailAddress = $request->session()->put('emailAddress', $request->emailAddress);
  $client_info->save();

Я пытался использовать это, но получаю SQLSTATE [23000]: нарушение ограничения целостности: 1048 Столбец 'firstName' не может быть пустым ошибка.Я думаю, что данные сеанса удалены?Я новичок в Laravel, поэтому извините, если мое объяснение проблемы сбивает с толку.

1 Ответ

0 голосов
/ 30 ноября 2018

вы должны получить значение из сеанса, сохраняя данные в базе данных:

  $client_info = new client();
  $client_info->firstName = $request->session()->get('firstName');
  $client_info->lastName = $request->session()->get('lastName');
  $client_info->phoneNumber = $request->session()->get('phoneNumber');
  $client_info->emailAddress = $request->session()->get('emailAddress');
  $client_info->save();

узнать больше о сеансе: здесь

, так как вы получаете эту ошибку:

SQLSTATE [23000]: Нарушение ограничения целостности: 1048 Столбец 'firstName' не может быть пустым (SQL: вставить в значения клиентов (firstName, lastName, phoneNumber, emailAddress, updated_at, updated_at) (,,, 2018-11-30 10:24:56, 2018-11-30 10:24:56))

внутри вашей модели клиента:

protected  $fillable=['firstName','lastName','phoneNumber','emailAddress'];

и убедитесь в своей базе данных, таблице клиента: firstName, lastName, phoneNumber, emailAddress допускают нулевые значения

также проверяют, что вы получаете значение из сеанса, может случиться, что ваши значения сеанса хранятся неправильно.

...