Laravel 5.2.45中的完整性约束违规错误消息

时间:2017-07-09 20:24:41

标签: php mysql laravel

我正在关注Laravel YouTube tutorial,但是当我改变这一行时:

return redirect()->back();

为:

return redirect()->route('dashboard');
在UserController.php中的

我收到此错误:

  

Connection.php第729行中的QueryException:SQLSTATE [23000]:完整性   约束违规:1048专栏'电子邮件'不能为null(SQL:insert   进入usersemailfirst_namepasswordupdated_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()->back();

完美配合

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

而不是:

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

这样做:

return redirect(route('dashboard'));

可能会工作。 我使用相同版本的框架,当我按照我的方式使用redirect代码时,它始终有效。

我承认,如果你分享你的路线会更容易,但乍看之下我认为是不同的。

答案 2 :(得分:0)

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

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

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

感谢每个人