【发布时间】:2019-01-18 06:13:36
【问题描述】:
当我创建第一个帖子时,它会成功创建,但是当我创建另一个帖子时,我收到此错误并且我的 slug 将无法正常工作。
这是错误:
“SQLSTATE[23000]:完整性约束违规:1062 键“posts_slug_unique”的重复条目“1”(SQL:插入
posts(title,body,updated_at,created_at)值(Gacho的第二篇文章,Gacho的第二篇文章正文,2018-08-10 15:19:30,2018-08-10 15:19:30))
这是我的代码。
class AddSlugToPosts extends Migration
{
public function up()
{
Schema::table('posts', function ($table) {
$table->string('slug')->unique()->after('body')->default();
});
}
public function down()
{
Schema::table('posts', function ($table) {
$table->dropColumn('slug');
});
}
}
public function rules()
{
return [
'title' => 'required|max:255',
'body' => 'required',
'slug' => 'required|alpha_dash|min:5|max:255|unique:posts,slug'
];
}
public function store(PostRequest $request)
{
$post = Post::create($request->all());
Session::flash('success', 'The blog post was successfully saved!');
return redirect()->route('posts.show', $post->id);
}
【问题讨论】:
-
dd($request->all()),那里的 slug 值是多少?不是已经在桌子上了吗? -
你在桌子上有一个唯一的键约束,这就是它抛出错误的原因,确保你的 slug 值不重复
-
@u_mulder 我在第一个帖子的表中有值,它是 1,现在当我尝试创建第二个帖子时,我收到了这个错误。就像它正在复制该值,但我找不到解决方案
-
@pseudoanime 是的,我知道,但是当我创建另一个帖子时,我设置了不同的值,但仍然是同一个错误。它是第一篇文章的 slug 的重复值。
-
@u_mulder 你根本没有明确发布 slug 吗?试试 dd($request->all());在你的控制器中,如果它显示一个现有的 slug 值,那么你就知道问题了