Laravel - SQLSTATE [23000]:完整性约束违规:1062 键“posts_user_id_unique”的重复条目“1”
Posted
技术标签:
【中文标题】Laravel - SQLSTATE [23000]:完整性约束违规:1062 键“posts_user_id_unique”的重复条目“1”【英文标题】:Laravel - SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1' for key 'posts_user_id_unique 【发布时间】:2021-05-30 15:11:52 【问题描述】:我有一个错误:
SQLSTATE[23000]:违反完整性约束:1062 键“posts_user_id_unique”的重复条目“1”
如果我创建帖子并使用同一用户,则会出现错误
如果您使用不同的用户,它会起作用。
这是我在迁移中的代码,create_posts_table.php:
$table->id();
$table->foreignId('user_id')->unique()->constrained()->onDelete('cascade');
$table->integer('category_id')->unsigned()->index();
create_categories_tables.php:
$table->id();
$table->string('name')->constrained()->onDelete('cascade');
这是我在控制器中的代码,PostController:
public function create()
$this->authorize('create', Post::class);
$categories = Category::pluck('name','id');
return view ('admin.posts.create', ['categories'=>$categories]);
public function store()
$this->authorize('create', Post::class);
$inputs = request()->validate([
'title'=>'required',
'post_image'=>'file', //mime: jpeg, png
'body'=>'required',
'category_id'=> 'required'
]);
if(request('post_image'))
$inputs['post_image'] = request('post_image')->store('images');
auth()->user()->posts()->create($inputs);
session()->flash('post-create-message', 'Post was Created ' . $inputs['title']);
// return back();
return redirect()->route('post.index');
【问题讨论】:
从$table->foreignId('user_id')->unique()->constrained()->onDelete('cascade');
中删除 unique()
并再次运行迁移
【参考方案1】:
我认为你应该删除
->unique()
在
$table->foreignId('user_id')->unique()->constrained()->onDelete('cascade');
如果不是,用户在创建第二个帖子时会收到上述错误
【讨论】:
谢谢你,它有效.. 我忘了我用的是unique()
...以上是关于Laravel - SQLSTATE [23000]:完整性约束违规:1062 键“posts_user_id_unique”的重复条目“1”的主要内容,如果未能解决你的问题,请参考以下文章
SQLSTATE[23000]:Laravel 中的完整性约束违规
Laravel:数据表的 SQLSTATE [23000] 错误
Laravel:正确保存后返回重定向抛出 SQLSTATE [23000]:完整性约束违规
SQLSTATE[23000]:违反完整性约束:在 Laravel 5.2 中
Connection.php 第 729 行中的 QueryException:SQLSTATE[23000]:Laravel 5.2
Laravel 7 错误 - SQLSTATE [23000]:完整性约束违规:1048 列 'first_name' 不能为空