سلام طبق آموزش روکسو جلو رفتم ولی در زمان حذف کاربر این خطا نمایش داده میشود:
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();
این خطا به شما می گوید: به دلیل ایجاد وابستگی بین جدول photos و users، امکان حذف آیتم وجود ندارد. یعنی شما یک ارتباط بین جدول تصاویر و کاربران ایجاد کرده اید ولی شرطی روی آن اعمال نکردید که اگر عکس حذف شد، وابستگی آن عکس با کاربر نیز از بین برود. بنابراین برای حل این مشکل باید جدول photos را به صورت زیر ویرایش کنید:
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
به جمع هزاران کاربر اینستاگرامی روکسو بپیوندید.