درود دوستان...
یه بخش دسته بندی کد نویسی کردم که همه چیز اوکیه و دسته ها ایجاد می کنه, بعد حذف و ویرایش میشه...
یه مدتی خوب کار می کنه و بعد از آن وقتی بخوام دسته ایجاد کنم خطای زیر میده:
Illuminate\Database\QueryException
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'developer web 3' for key 'categories_slug_unique' (SQL: insert into `categories` (`name`, `slug`, `category_id`, `updated_at`, `created_at`) values (Orchid navs, developer web 3, 7, 2021-09-21 16:45:12, 2021-09-21 16:45:12))
سلام مجدد
هر بار که ;()Category::create
رو صدا میزنید یک ریکورد رو توی دیتابیستون ذخیره می کنید
الان توی کدی که فرستادین یکبار ریکویست ولیدیت شده رو ذخیره میکنید و یکبار هم مقادیر نام و اسلاگ و کتگوری آی دی ریکویست رو
بنابراین دو بار دارین اطلاعات رو وارد میکنید
فک کنم منظورتون این بوده که اول اطلاعات ولیدیت بشن و بعد فقط اطلاعات خاصی از ریکویست ولیدت شدتون وارد دیتابیس بشه
;()Category::create
اولی اضافیه
یکی از ستونای جدولتون که احتمال میدم اسلاگ باشه یونیک هستش و شما دارین مقدار تکراری واردش میکنین
من اصرار دارم که ارور شما داره همینو میگه و یه اسلاگ ممکنه تکراری باشه
جهت اطمینان یه اسلاگ متفاوت وارد کنید و همچنین مستقیم دیتابیستونو چک کنید
دسته ثبت می کنه و بخواد منتقل بشه صفحه اصلی خطای اسلاگ متفاوت وارد می کنم رو میده...
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'BBBBBBB' for key 'categories_slug_unique' (SQL: insert into `categories` (`name`, `slug`, `category_id`, `updated_at`, `created_at`) values (تست 2, BBBBBBB, 7, 2021-09-21 17:43:17, 2021-09-21 17:43:17))
تو این که داری تکراری وارد میکنی شکی نداشته باش
ببین احتمال زیاد داری دوبار ریکورد کرییت میکنی حالا شاید تو این کنترلت یا کنترل های دیگت
من باشم تو این شرایط همه جاهایی که داده به دیتابیسم وارد میکنم رو چک میکنم که یه وقت یه کرییت دیگه نباشه
public function store(CategoryCreateRequest $request)
{
Category::create(
$request->validated()
);
Category::create(
$request->only(['name', 'slug', 'category_id'])
);
session()->flash('status', 'دسته بندی مد نظر به درستی ایجاد شد!');
return back();
}
دیتابیس مربوط به جدول categoryies پاک کردم و دوباره دسته ایجاد کردم همون خطا رو میده:
Illuminate\Database\QueryException
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'Test 1' for key 'categories_slug_unique' (SQL: insert into `categories` (`name`, `slug`, `category_id`, `updated_at`, `created_at`) values (تست ۱, Test 1, ?, 2021-09-21 19:16:22, 2021-09-21 19:16:22))
@atrakunin
اینم کد جدولشه:
Schema::create('categories', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('slug')->unique();
$table->unsignedBigInteger('category_id')->nullable();
$table->foreign('category_id')
->references('id')
->on('categories')
->onUpdate('CASCADE')
->onDelete('CASCADE');
$table->timestamps();
});
سلام مجدد
هر بار که ;()Category::create
رو صدا میزنید یک ریکورد رو توی دیتابیستون ذخیره می کنید
الان توی کدی که فرستادین یکبار ریکویست ولیدیت شده رو ذخیره میکنید و یکبار هم مقادیر نام و اسلاگ و کتگوری آی دی ریکویست رو
بنابراین دو بار دارین اطلاعات رو وارد میکنید
فک کنم منظورتون این بوده که اول اطلاعات ولیدیت بشن و بعد فقط اطلاعات خاصی از ریکویست ولیدت شدتون وارد دیتابیس بشه
;()Category::create
اولی اضافیه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟