راکت
حل شده

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

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

ثبت پرسش جدید

پاسخ‌ها

2
محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

بهترین پاسخ

نام گذاری های متدهای روابطتون برعکس نوشتید. 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
Saman
@samanzdev

تخصص: برنامه نویس وب

با سلام
نگاه کنید رابطه بین 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

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

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

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