【问题标题】:Integrity constraint violation error message with Laravel 5.2.45Laravel 5.2.45 的完整性约束违规错误消息
【发布时间】:2017-07-22 03:32:43
【问题描述】:

我正在关注关于 Laravel 的 YouTube tutorial,但是当我更改此行时:

return redirect()->back();

到:

return redirect()->route('dashboard');

在 UserController.php 中出现此错误:

Connection.php 第 729 行中的 QueryException:SQLSTATE[23000]:完整性 违反约束:1048 列“电子邮件”不能为空(SQL:插入 进入users (email, first_name, password, updated_at, created_at) 值 (, , y$WNp1qKLTDNktowIC0LRKE.SjCOxm8wZV97BRCLAcPk3wsmGR9mJvG, 2017-07-09 20:09:52, 2017-07-09 20:09:52))

这是整个函数:

public function postSignUp(Request $request)
{
    $email = $request['email'];
    $first_name = $request['first_name'];
    $password = bcrypt($request['password']);
    $user = new User();
    $user->email = $email;
    $user->first_name = $first_name;
    $user->password = $password;
    $user->save();
    return redirect()->route('dashboard');
    //return redirect()->back();  }

我尝试了$email = $request->input('email');,但没有任何改变。

谁能给我一个解释和解决方案? 哦,这是我的注册表单

<form  action="{{ route('signup') }}" method="post">
  <div class="form-group">
    <label for="email">Your E-mail</label>
    <input class="form-control" type="text" name="email" id="email">
  </div>
  <div class="form-group">
    <label for="first_name">Your First name</label>
    <input class="form-control" type="text" name="first_name" id="first_name">
  </div>
  <div class="form-group">
    <label for="password">Your Password</label>
    <input class="form-control" type="password" name="password" id="password">
  </div>
  <button type="submit" class="btn btn-primary" >Submit</button>
  <input type="hidden" name="_token" value="{{ Session::token() }}">
</form>

正如我所说,它与 return redirect()-&gt;back(); 完美搭配

【问题讨论】:

  • 与路由共享您的登录表单
  • 您能否确认该请求对电子邮件有价值。试试dd($request['email'])

标签: php mysql laravel


【解决方案1】:

您的请求对象上的 email 字段为空,请务必确认该字段具有使用 dd($request-&gt;email)dd($request-&gt;input('email') 打印的值。

【讨论】:

    【解决方案2】:

    而不是做:

    return redirect()->route('dashboard');
    

    这样做:

    return redirect(route('dashboard'));
    

    可能会奏效。 我使用相同版本的框架,当我按照我的方式使用redirect 代码时,它总是有效。

    我承认,如果你分享你的路线会更容易,但乍一看,这就是我认为不同的地方。

    【讨论】:

      【解决方案3】:

      我发现问题出在我的路由文件中,我混合了

      Route::get('/dashboard', [
      'uses' => 'UserController@getDashboard',
      'as' => 'dashboard'
      

      Route::post('/signup', [
      'uses' => 'UserController@postSignUp',
      'as' => 'signup'
      

      感谢大家

      【讨论】:

        猜你喜欢
        • 2020-04-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-07
        • 2016-11-22
        • 2020-09-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多