راکت
حل شده

رابطه در لاراول

1 پاسخ

سلام دوستان.
من میخوام تو یه قسمت از سایتم مقالاتی رو نمایش بدم که فقط جزء دسته بندی تکنولوژی هستند، برای انجام این کار داخل کنترلر چطور باید اینو بنویسم؟
جدول categories:

Schema::create('categories', function (Blueprint $table) {
     $table->id();
     $table->string('name')->unique();
     $table->unsignedBigInteger('category_id')->nullable();
     $table->foreign('category_id')->references('id')->on('categories')->onUpdate('CASCADE')->onDelete('CASCADE');
     $table->timestamps();
});

جدول article_category:

Schema::create('article_category', function (Blueprint $table) {
     $table->foreignId('article_id')->constrained()->onDelete('CASCADE')->onUpdate('CASCADE');
     $table->foreignId('category_id')->constrained()->onDelete('CASCADE')->onUpdate('CASCADE');
     $table->unique(['article_id' , 'category_id']);
});
ثبت پرسش جدید

پاسخ‌ها

1
فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

بهترین پاسخ

سلام وقت بخیر ،
خب همینطور که میدونید رابطه چند به چند هست و باید داخل مدل ها belongsToMany رو اضافه کنید...
شما ابتدا باید id اون دسته بندی رو بگیرید مثلا تکنولوژی id = 7 هست

$cat = Category::where('id' , 7)->first();

و با استفاده از رابطه ای که قرار داره مقالات رو نمایش میدیم

return  $cat->articles;

شاید پاسخ شما همین‌جا باشد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام