NESYOU
3 سال پیش توسط NESYOU مطرح شد
2 پاسخ

مشکل در رابطه پست و کتگوری

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

این ریلیشن هام
Post.php


  public function categories(){
return $this->belongsTo(Category::class);
}

category.php


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

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

{{ $post->categories->title }}

Attempt to read property "title" on null
مشکل کجاست؟

@ali.bayat
@mhyeganeh
@Rp76


ثبت پرسش جدید
محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش آپدیت شد
2

نام گذاری های متدهای روابطتون برعکس نوشتید. category باید مفرد باشه و posts باید جمع باشه:

class Post extends Model {

    public function category(){
        return $this->belongsTo(Category::class);
    }

}
class Category extends Model {

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

}

بعد اینجوری استفاده کنید:

{{ $post->category->title }}

پیش فرض لاراول هم این هست که اسم گذاری جداول و فیلدهای FK و‌ PK تون هم استاندارد هست. یعنی در این مثال جدول posts باید داشته باشید با یک فیلد بنام category_id و id و ...
جدول categories باید داشته باشید با فیلد id و title و ...


Saman
تخصص : برنامه نویس وب
@samanzdev 3 سال پیش مطرح شد
1

با سلام
نگاه کنید رابطه بین post و category یک رابطه چند به چند است ، به عبارتی دیگر هر پست دارد چندین دسته بندی و هر دسته بندی متعلق است به چندین پست.
شما باید به این شکل بنویسید :👇
فایل Post.php

public function categories(){
return $this->belongsTo(Category::class);
} 

فایل Category.php

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

داخل view هم به این شکل استفاده کنید 👇

{{ $post->categories->title }} 

موفق باشید
@nesyourys


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

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