Получать новости из определенной категории c вместе с каждым автором новостей в laravel - PullRequest
0 голосов
/ 16 июня 2020

У меня есть следующая функция в модели категории:

public function news(){
    return $this->belongsToMany(News::class,'news_categories','category_id','news_id');
}

public function writer(){
    return $this->belongsToMany(NewsAuthor::class,'news_authors','news_id','user_id');
}

public static function getNewsByCategory($id, $limit){
    return Category::where('id', $id)->has('news')
      ->with(['news' => function($q) use(&$limit) {
         $q->latest()->limit($limit);
      }])->first();
}

для получения новостей по идентификатору категории, теперь я также хочу получить средство записи новостей, которое находится в таблице news_author.

Как получить автора новостей с помощью моей функции getNewsByCategory?

Ответы [ 2 ]

0 голосов
/ 17 июня 2020

почему бы просто не добавить отношение writer внутри with([ ... ]) согласно laravel do c

public static function getNewsByCategory($id, $limit){
    return Category::where('id', $id)->has('news')
      ->with(['news' => function($q) use(&$limit) {
         $q->latest()->limit($limit);
      }, 'writer'])->first();
}

Отметьте похожий пост

0 голосов
/ 16 июня 2020

В модальном окне новостей добавьте $ с

protected $with = ['writers'];

public function writers(){
    return $this->belongsToMany(NewsAuthor::class,'news_authors','news_id','user_id');
}

// you can get writers for each new
foreach($category->news as $new) {
  $wirters = $new->writers;
}

...