سلام دوستان خسته نباشید
من وقتی میخوام فرم رو ارسال کنم همچین ارروری بهم میده
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`siliuser`.`weekly_reports`, CONSTRAINT `weekly_reports_consultant_id_foreign` FOREIGN KEY (`consultant_id`) REFERENCES `consultant_information` (`id`) ON DELETE CASCADE ON UPDATE CASCADE) (SQL: insert into `weekly_reports` (`title`, `body`, `user_id`, `student_id`, `consultant_id`, `updated_at`, `created_at`) values (kjb, <p>lkn</p>, 1, 1, 4, 2020-11-13 08:22:12, 2020-11-13 08:22:12))
ReportController.php [ store ]
$report = new Report();
$report->title = request('title');
$report->body = request('body');
$report->user_id = request('students');
$report->student_id = request('students');
$report->consultant_id = $request->user()->id;
$report->save();
return redirect(route('admin.'));
Migration
Schema::create('weekly_reports', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('title');
$table->text('body');
$table->string('slug')->nullable();
// Relation with 'users' Table
$table->unsignedBigInteger('user_id')->index()->unsigned();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade')->onUpdate('cascade');
//Relation with 'student_information' Table
$table->unsignedBigInteger('student_id')->index();
$table->foreign('student_id')->references('id')->on('student_information')->onDelete('cascade')->onUpdate('cascade');
//Relation with 'consultant_information' Table
$table->unsignedBigInteger('consultant_id')->index();
$table->foreign('consultant_id')->references('id')->on('consultant_information')->onDelete('cascade')->onUpdate('cascade');
$table->timestamps();
ممنون میشم راهنمایی کنید ❤️❤️
@mhyeganeh
دستتون درد نکنه
اره دقیقا
اینجا که نوشتم بیشتر که دقت کردم متوجه این موضوع شدم
خییلی ممنون از پاسختون
سلامت باشید
چند تا مورد دیگه هم به نظرم اومد:
اول اینکه نیازی نیست برای ستون هایی که بعدا بعنوان FK تعریف میکنید بصورت جداگانه و دستی index() بگذارید. چون بصورت پیش فرض این اتفاق برای FK ها میافته.
و دوم هم اینکه بهتره در نام گذاری جداولتون بجای student_information و consultant_information از students و consultants استفاده کنید که هم مرسوم تره و هم مشخص تر. به صورت پیش فرض خود لاراول هم برای هر مدل دنبال جدولی میگرده با همون اسم به شکل جمع.
شاید پاسخ شما همینجا باشد