خطا در ویرایش مطالب لاراول (a foreign key constraint fails)

سلام طبق آموزش روکسو جلو رفتم ولی در زمان حذف کاربر این خطا نمایش داده میشود:

SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`laravel-blog`.`photos`, CONSTRAINT `photos_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)) (SQL: delete from `users` where `id` = 3)

مایگریشن Users:

Schema::create('users', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->tinyInteger('status')->unsigned()->default(0);
            $table->integer('photo_id')->unsigned()->nullable();
            $table->rememberToken();
            $table->timestamps();
        });

مایگریشن Photo:

Schema::create('photos', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('path');
//            $table->string('name');
            $table->string('alt')->nullable();
            $table->bigInteger('user_id')->unsigned();
            $table->foreign('user_id')->references('id')->on('users');
            $table->timestamps();

 

برچسب ها:
پرسیده شده در: 2 سال قبل
آمار بازدید: 766
بیش از ۲ سال عضویت در روکسو بیش از ۲ سال عضویت در روکسو
0

این خطا به شما می گوید: به دلیل ایجاد وابستگی بین جدول photos و users، امکان حذف آیتم وجود ندارد. یعنی شما یک ارتباط بین جدول تصاویر و کاربران ایجاد کرده اید ولی شرطی روی آن اعمال نکردید که اگر عکس حذف شد، وابستگی آن عکس با کاربر نیز از بین برود. بنابراین برای حل این مشکل باید جدول photos را به صورت زیر ویرایش کنید:

  $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');

 

ارسال شده در: 2 سال قبل
masoudsalehi (1378)
بیش از ۲ سال عضویت در روکسو بیش از ۲ سال عضویت در روکسو دارای 1000 کارما دارای 1000 کارما دارای 10 پاسخ صحیح دارای 10 پاسخ صحیح ارسال کننده پاسخ با 25 رای ارسال کننده پاسخ با 25 رای نظرات دریافتی:‌ بیش از 50 نظرات دریافتی:‌ بیش از 50
ممنون از پاسخ شما، ولی این تنظیمات مشابه آموزش و حتی خود فایل مایگریشن موجود در آموزش هست. تنها نتیجه ای که میتوان گرفت این نکته هست که دیتابیس طراحی شده اشتباه می باشد و نیاز به ذخیره آیدی کاربر روی عکس نیست چرا که اگر فرمایش شما اعمال شود تمام تصاویر آپلود شده توسط کاربر حذف می گردد. در ضمن پروژه وبلاگ روکسو را هم تست کردم و دیدم همین خطا برای آن هم رخ میدهد! - webdeveloper در 2 سال قبل
جهت ارسال پاسخ ابتدا عضو سایت شوید.