Laravel 5.1 SQLSTATE[23000]:违反完整性约束错误
Laravel 5.1 SQLSTATE[23000]: Integrity constraint violation error
在使用新电子邮件注册时,我可以成功注册新用户,但是当我尝试创建一个 validation rule
来限制现有电子邮件的注册时,它没有给出验证错误消息,而是给我 Integrity constraint violation error
,
这是我的 controller
public function postRegister(Request $request){
$v = validator::make($request->all(), [
'first_name' => 'required|max:30',
'last_name' => 'required|max:30',
'email' => 'required|unique:users|email',
'mobile' => 'required|min:10',
'password' => 'required|min:8',
'confirm_password' => 'required|same:password'
]);
if ($v->fails())
{
return redirect()->back()
->withErrors($v->errors())
->withInput(Input::except('password', 'confirm_password'));
}
else{
// validation successful ---------------------------
/*
add data to database
*/
}
这是我的 migration
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('first_name', 80);
$table->string('last_name', 80);
$table->string('email')->unique();
$table->string('mobile',80);
$table->string('password', 60);
$table->boolean('confirmed')->default(0);
$table->string('confirmation_code')->nullable();
$table->float('amount', 80);
$table->rememberToken();
$table->timestamps();
});
}
我该如何解决这个错误?任何帮助表示赞赏。
应该是:
if ($v->fails())
{
return redirect()->back()
->withErrors($v->messages()) //Not errors
->withInput(Input::except('password', 'confirm_password'));
}
如果您阅读了验证器的文档。
第一个参数:用于输入
第二个参数:用于规则
第三个参数:用于自定义消息
在使用新电子邮件注册时,我可以成功注册新用户,但是当我尝试创建一个 validation rule
来限制现有电子邮件的注册时,它没有给出验证错误消息,而是给我 Integrity constraint violation error
,
这是我的 controller
public function postRegister(Request $request){
$v = validator::make($request->all(), [
'first_name' => 'required|max:30',
'last_name' => 'required|max:30',
'email' => 'required|unique:users|email',
'mobile' => 'required|min:10',
'password' => 'required|min:8',
'confirm_password' => 'required|same:password'
]);
if ($v->fails())
{
return redirect()->back()
->withErrors($v->errors())
->withInput(Input::except('password', 'confirm_password'));
}
else{
// validation successful ---------------------------
/*
add data to database
*/
}
这是我的 migration
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('first_name', 80);
$table->string('last_name', 80);
$table->string('email')->unique();
$table->string('mobile',80);
$table->string('password', 60);
$table->boolean('confirmed')->default(0);
$table->string('confirmation_code')->nullable();
$table->float('amount', 80);
$table->rememberToken();
$table->timestamps();
});
}
我该如何解决这个错误?任何帮助表示赞赏。
应该是:
if ($v->fails())
{
return redirect()->back()
->withErrors($v->messages()) //Not errors
->withInput(Input::except('password', 'confirm_password'));
}
如果您阅读了验证器的文档。
第一个参数:用于输入
第二个参数:用于规则
第三个参数:用于自定义消息