0

我在类别模型中具有以下功能:

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();
}

要按类别 id 获取新闻,现在,我还想获取 news_author 表中的新闻作者。

如何使用我的功能获取新闻作者getNewsByCategory

4

2 回答 2

0

为什么不只是根据laravel docwriter添加关系with([ ... ])

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();
}

检查类似的帖子

于 2020-06-16T23:02:00.833 回答
0

在新闻模式中添加 $with

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;
}

于 2020-06-16T13:01:26.733 回答