получить дополнительные данные в красноречивых отношениях «многие ко многим» в laravel

Я создаю такую ​​таблицу:

сообщения

  id title

категории

 id name

категория_сообщения

   post_id
   category_id
   custom_value

в модели категории:

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

с помощью этой команды:

$category = Category::find(1);
$posts = $category->posts()->get();

Я могу получить все посты.

Можно ли вернуть custom_value в category_post с каждым связанным постом?


person Areza    schedule 26.02.2018    source источник
comment
laravel.com/docs/master/eloquent-relationships#many-to-many много - посмотрите на Retrieving Intermediate Table Columns   -  person aynber    schedule 26.02.2018


Ответы (2)


Используйте функцию withPivot.

class Category extends Model
{

  public function posts()
  {
   return $this->belongsToMany(Post::class)->withPivot('custom_value');
  }
}
person Mahdi Younesi    schedule 26.02.2018

Вы можете использовать метод withPivot()

return $this->belongsToMany(Post::class)

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

or

public function categories()
{
        return $this->belongsToMany(Category::class)->withPivot('column1','column2');
}
person AH.Pooladvand    schedule 26.02.2018