سلام دوستان.
من دوره اموزشی راه اندازی وبسایت اموزشی فروشگاهی با لاراول رو شروع کردم و این مایگریشن رو برای جدول episodes پیاده سازی کردم (طبق ویدیو):
public function up()
{
Schema::create('episodes', function (Blueprint $table) {
$table->increments('id');
$table->integer('course_id')->unsigned();
$table->foreign('course_id')->references('id')->on('courses')->onDelete('cascade');
$table->string('type', 10);
$table->string('title');
$table->string('slug');
$table->text('description');
$table->text('body');
$table->string('videoUrl');
$table->string('tags');
$table->string('time', 15)->default('00:00:00');
$table->integer('number');
$table->integer('viewCount')->default(0);
$table->integer('commentCount')->default(0);
$table->integer('downloadCount')->default(0);
$table->timestamps();
});
}
اما ارور زیر رو برگرداند:
SQLSTATE[HY000]: General error: 1005 Can't create table elearning
.episodes
(errno: 150 "Foreign key constraint is incorrectly formed") (SQL: alter table episodes
add constraint episodes_course_id_foreign
foreign key (course_id
) references courses
(id
) on delete cascade)
[PDOException]
SQLSTATE[HY000]: General error: 1005 Can't create table elearning
.episodes
(errno: 150 "Foreign key constraint is incorrectly formed")
توی استک اورفلو پرسیدم و گفتن از bigInteger به جای integer برای course_id استفاده کنم که البته بازهم ارور داد!
ضمن اینکه ورژن لاراول من 5.4
هست.
ممنون میشم در این زمینه کمکم کنید...
سلام خسته نباشید
باید درست باشه طبق مستندات https://laravel.com/docs/5.4/migrations#foreign-key-constraints
حالا به نظرم بیا چک کن ببین واقعا لاراولت نسخه 5.4 هست یا نه
من هم همین مشکل را داشتم بعد کلی تلاش فهمیدم متقیر های تیبل های دیتابیس یکی نیستند
$table->foreign('course_id')->references('id')->on('courses')->onDelete('cascade');
در اینجا id در تیبل courses باید متقیرش با course_id یکی باشد
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟