Laravel属于where条件的关系

Laravel belongs to relation with where condition

我正在使用 2 tables 说“视频”,“video_tags”。我的视频 table 将存储视频记录,而 video_tags 将存储标签现在我真的需要前端,我只需要获取带有特定标签的视频集。为此,我将条件设置如下:

$resultQuery = Video::with('Videotags')
    ->where('event_date', $this->event_date)
    ->orderBy(DB::raw("STR_TO_DATE(`videos`.`from_time`,'%h:%i%p')"));

我的视频模型看起来像

public function Videotags()
{
    return $this->belongsToMany(Tag::class, 'video_tag', StringLiterals::VIDEOID, 'tag_id')
        ->whereNull('video_tag.deleted_at');
}

现在我需要过滤视频标签为5的视频记录, 我在模型文件中放置了 where 条件

->where('tag_id', '5')

另外,我试过了

$resultQuery = Video
    ::with('Videotags', function (Builder $query) {
        $query->where('tag_id', '<>', '5');
    })
    ->where('event_date', $this->event_date)
    ->orderBy(DB::raw("STR_TO_DATE(`videos`.`from_time`,'%h:%i%p')"));

它不工作,where condition 对 belongsToMany 不工作?或者其他方式?

终于找到答案了

   $resultQuery = Video::whereHas('tags', function ($query) { 
      $query->where('video_tag.tag_id', 83); 
   })->where('event_date', $this->event_date)
   ->orderBy(DB::raw("STR_TO_DATE(videos.from_time,'%h:%i%p')"));