存储存储在会话 laravel 中的值

Posted

技术标签:

【中文标题】存储存储在会话 laravel 中的值【英文标题】:Store value that is stored in session laravel 【发布时间】:2019-05-02 11:37:04 【问题描述】:

该网站是一个预订系统,首先客户必须填写预订申请表。单击下一步后,用户将被移动到预订摘要,他们可以在其中看到预订摘要。 我使用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]: Integrity constraint violation: 1048 Column 'firstName' cannot be null 错误。我认为会话数据被删除了?我是 laravel 新手,如果我对问题的解释令人困惑,我很抱歉。

【问题讨论】:

【参考方案1】:

您应该从会话中获取价值,同时将数据存储到数据库中:

  $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();

了解有关会话的更多信息:here

当您收到此错误时:

SQLSTATE[23000]:违反完整性约束:1048 列“firstName”不能为空(SQL:插入客户端(firstName、lastName、phoneNumber、emailAddress、updated_at、created_at)值(、、、、、2018-11-30 2018-11-30 10:24:56 10:24:56))

在您的客户端模型中:

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

并确保在您的数据库中,客户端表:firstName,lastName,phoneNumber,emailAddress 允许空值

还要检查您是否从 session 中获得价值,这可能会发生您的 session 值未正确存储。

【讨论】:

我得到同样的错误 SQLSTATE[23000]: 完整性约束违规: 1048 列 'firstName' 不能为空 (SQL: 插入clients (firstName, lastName, phoneNumber, emailAddress, updated_at, created_at) 值 (, , , , 2018-11-30 10:24:56, 2018-11-30 10:24:56))

以上是关于存储存储在会话 laravel 中的值的主要内容,如果未能解决你的问题,请参考以下文章

如何在单独的表单页面上存储和访问存储在会话对象中的值

Laravel 中的单会话登录

Laravel 存储用户会话的位置

Laravel 如何在会话 Laravel 中存储额外的数据/值

会话不在 Vue.js 和 Laravel 中存储数据

如何将从“选择”查询中获得的值存储到 ASP.net 中的会话变量中