ویرگول
ورودثبت نام
Amir Iqbal
Amir Iqbal
Amir Iqbal
Amir Iqbal
خواندن ۱ دقیقه·۸ ماه پیش

🔁 رابطه یکه به چند(One to Many) در لاراول — وقتی هر "یکی" چندتا داره!


تو دنیای واقعی خیلی وقتا با این مدل رابطه روبرو می‌شیم:
📌 هر کاربر می‌تونه چند پست داشته باشه
📌 هر دسته‌بندی می‌تونه چند محصول داشته باشه
📌 هر مقاله می‌تونه چند کامنت داشته باشه

این همون چیزیه که توی پایگاه‌داده بهش می‌گیم رابطه یک به چند (One to Many)
یعنی:

یک رکورد در جدول A می‌تونه چند رکورد در جدول B داشته باشه
ولی هر رکورد در جدول B فقط به یک رکورد از A وابسته‌ست.

📦 پیاده‌سازی در لاراول

فرض کنیم دو مدل داریم:
🔹 User
🔹 Post

یعنی هر کاربر چند پست می‌تونه داشته باشه.

در مدل User بنویس:

public function posts() { return $this->hasMany(Post::class); }

و در مدل Post:

public function user() { return $this->belongsTo(User::class); }

حالا می‌تونی راحت بنویسی:

$user = User::find(1); foreach($user->posts as $post) { echo $post->title; }

و اگه بخوای پست به کاربرش دسترسی داشته باشه:

$post = Post::find(1); echo $post->user->name;

🚀 نکته‌های مهم:

  • اسم تابع در hasMany() معمولاً جمع بسته می‌شه (posts، comments، products)
  • تو جدول posts باید user_id داشته باشی تا مشخص بشه هر پست مال کدوم کاربره
  • اگه می‌خوای عملکرد رو بهتر کنی از Eager Loading استفاده کن:
User::with('posts')->get();

🎯 کاربردهای رایج One to Many:

  • دسته‌بندی → محصولات
  • کاربر → پست‌ها
  • وبلاگ → نظرات
  • فروشگاه → سفارش‌ها

💬 تو پروژه‌هات از این رابطه استفاده کردی؟
یا سوالی داری؟
کامنت بذار یا پست رو ذخیره کن برای استفاده‌های بعدی! 🚀

لاراولآموزش لاراول
۰
۰
Amir Iqbal
Amir Iqbal
شاید از این پست‌ها خوشتان بیاید