🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ devnafisi
روابط دیتابیس
جامعه لاراول ایجاد شده در ۱۵ تیر ۱۴۰۲

سلام خسته نباشین،سوالی که داشتم به شرح زیر هستش:

من یک table users دارم و یک table roles

در migration table users رابطه اش با table roles

به شکل زیر نوشتم

$table->foreignId('role_id')->references('id')->on('roles')->comment('[0 => Developer, 1 => Admin, 2 => user]');

وقتی وارد دیتابیس میشم و table users باز میکنم و میخوام یک رکورد insert کنم،لیست roll هارو بهم نمایش میده

به شکل زیر

متاسفانه نمیدونم چرا عکس آپلود نمیشه،این تایپک رو ایجاد میکنم و در ادامه این تاپیک مشکلم رو میگم

خب عکس آپلود شده بود،داشتم عرض میکردم:

حالا سوال اینجاست که دوتا تیبل دارم که رابطه اشون n به n هستش

استم table‌ها به شرح زیر هستش

description_of_branches

و

sub_categories

و pivot table این دو table به شرح زیر میباشد

Schema::create('description_of_branch_sub_category', function (Blueprint $table) {
    $table->id();
    $table->integer('description_of_branch_id')->references('id')->on('description_of_branches');
    $table->integer('sub_category_id')->references('id')->on('sub_categories');
    $table->timestamps();
});

حالا سوالی که دارم این که sql میاد - هارو تبدیل به . میکنه و روابط رو پیدا میکنه؟

یعنی  table users که یک فیلد با اسم role_id داره به این شکل تعریف میکنه:؟

role.id

؟

و اگه اینطور نیست،چرا مثل توضیحات اول،

table description_of_branch_sub_category

به من مقادیر

sub_category

رو پیشنهاد نمیده؟


devnafisi ۱۵ تیر ۱۴۰۲، ۱۰:۴۸

سلام محمد عزیز

خب شما foreign و کلید خارجی ای که به جداول مربوطه اشاره کنه برای دریافت مقادیر ست نکردید.

کدتون باید به شکل زیر باشه:

$table->foreign('description_of_branch_id')->references('id')->on('description_of_branches');
$table->foreign('sub_category_id')->references('id')->on('sub_categories');


بهترین پاسخ
احمدرضا فاطمی کیا ۱۵ تیر ۱۴۰۲، ۱۱:۰۷