gpt4 book ai didi

php - SQLSTATE [23000] : Integrity constraint violation: 1062 Duplicate entry '0430142821' for key 'users_melli_unique'

转载 作者:行者123 更新时间:2023-12-04 08:58:27 26 4
gpt4 key购买 nike

我知道之前问过这个问题,但我想知道如何停止显示此错误,而不是我想在 Blade 中向用户显示自定义错误消息。
这是用户迁移:

public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('image')->nullable();
$table->string('email')->unique();
$table->boolean('is_superuser')->default(0);
$table->boolean('is_staff')->default(0);
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->string('phone_number')->nullable()->unique();
$table->enum('two_factor_type', ['off', 'sms']);
$table->string('melli')->nullable()->unique();
$table->rememberToken();
$table->timestamps();
});
}
更新:
这是我的插入功能:
$user = User::find(auth()->user()->id);
$request->validate([
'melli' => 'min:10|max:10',
'cart' => 'min:16|max:16'
]);;
$user->update([
'name' => $request['name'],
'cart' => $request['cart'],
'melli' => $request['melli'],
'gender' => $request['gender']
]);
return redirect(route('profile.index'));
当我的数据库中有一个像 1234567890 这样的 melli 并且我尝试再次写入 1234567890 时会发生此错误,因为 melli 字段是唯一的。

最佳答案

您需要 unique验证规则并忽略 id在更新中。
你可以这样做:

$request->validate([
'melli' => 'min:10|max:10|unique:users,melli,' .$user->id,
]);
或者
$request->validate([
'melli' => [
'min:10',
'max:10',
Rule::unique('users')->ignore($user->id, 'id')
],
'cart' => 'min:16|max:16'
]);
我认为这就是你所需要的。
还有一些 helpful answer .

关于php - SQLSTATE [23000] : Integrity constraint violation: 1062 Duplicate entry '0430142821' for key 'users_melli_unique' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63689063/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com