رفتن به مطلب
انجمن پشتیبانی لاراول ایران

هاست لاراول با پشتیبانی 24 ساعته و امکانات کامل از مدیرهاست

rahneshin

روابط چند به چند

Recommended Posts

سلام و خسته نباشید

مشکلی توی خوندن رکورد ها از جدول رابط (post_category)توی روابط چند به چند دارم

مدل پست ها

public function categories()
{
    return $this->belongsToMany('App\Category');
}

مدل دسته بندی ها

public function articles()
{
    return $this->belongsToMany('App\Article');
}

کنترلر

$posts = Post::find(100)->categories()->get();

اما ارور Call to a member function categories() on null  رو دریافت میکنم

تشکر

Share this post


Link to post
Share on other sites
در 4 ساعت قبل، saber گفته است :

ضمن خوش آمد به انجمن

مادل شما Article هست یا Post ؟ َشما برای ایجاد رابطه App\Article رو پاس دادید ولی برای فراخوانی از Post استفاده کردید

اینجا اشتباه تایپی دارم مدل من پست هست

App\Post

ولی همچنان همون ارور رو دارم

Share this post


Link to post
Share on other sites

برای پیاده سازی روابط چند به چند باید موارد زیر رو رعایت کنید

نام جدول واسط بطور پشفرض براساس ترتیب حروف الفبا ساخته میشه مثلا برای مادلهای Post و Category چون c از p جلوتر هست نام جدول واسط

هم به این شکل باید بشه category_post اگر هم بخواید از نام اختصاصی استفاده کنید مثل شما که post_category زدید باید در پارامتر دوم متدهای هر دو مادل نام جدول رو قرار بدید

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

 مادل Category

 public function posts(){
        return $this->belongsToMany(Post::class,'post_category');
    }

مادل Post

 public function categories(){
        return $this->belongsToMany(Category::class,'post_category');
    }

برای فراخوانی هم به همین شکل کد رو بنویسید

$posts = Post::find($id)->categories()->get();

 

Share this post


Link to post
Share on other sites

وارد این گفتگو شوید

میتوانید پیام خود را ارسال کنید و بعد ثبت نام نمایید. در صورتی که حساب کاربری دارید, هم اکنون وارد شوید و در این گفتگو شرکت کنید.

مهمان
پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  Only 75 emoji are allowed.

×   لینک شما به صورت اتوماتیک جایگذاری شد.   نمایش به عنوان یک لینک به جای

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • جدید...