【发布时间】: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()并再次运行迁移
标签: php html laravel laravel-8