存储会话laravel中存储的值

时间:2018-11-30 10:14:06

标签: php sql laravel eloquent laravel-blade

该网站是一个预订系统,客户首先必须填写预订请求表。单击下一步后,用户将被移至预订摘要,在此他们可以查看预订摘要。 我使用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 :(得分:2)

在将数据存储到数据库中的同时,您应该从session中获得价值:

  $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 10:24:56,2018-11-30 10:24:56))

您的客户模型内部:

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

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

还要检查您是否从会话中获取价值,这可能会导致会话值未正确存储。