سلام
برای افزودن پست کاربر از بین یسری دسته بندی ها میتونه یکیشو انتخاب کنه
ینی هر پست ی دسته بندی داره ولی ی دسته بندی برای چندتا پسته
این ریلیشن هام
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
مشکل کجاست؟
نام گذاری های متدهای روابطتون برعکس نوشتید. 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
و ...
با سلام
نگاه کنید رابطه بین 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
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟