从模型中获取在数据透视表中没有条目的所有记录 table Laravel 5

Get all records from Model that do NOT have an entry in pivot table Laravel 5

我正在努力弄清楚如何实现以下目标。我找了又找都没有结果。

我在 Laravel 5 应用程序中有一个枢轴 table,它按预期工作,在各个模型中具有以下功能。

// Module.php
//...
public function sites()
{
    return $this->belongsToMany('App\Site')->withPivot('enabled');
}

// Site.php
//...
public function modules()
{
    return $this->belongsToMany('App\Module')->withPivot('enabled');
}

我可以在我的 Sitecontroller.php

中使用类似以下内容检索所有相关记录
$site = Site::with('modules')->findOrFail($id);

我遇到的问题是我希望能够获取所有在相关站点的数据透视 table 中没有关联记录的模块。

任何人都可以指出正确的方向,我如何才能以正确的方式实现这样的目标(我可以想到一些方法,但看起来真的很老套)

提前致谢。 M

Module 端开始查询并排除 whereDoesntHave 在这种情况下应该有效:

$id = 1;
$modules = Module::whereDoesntHave('sites', function($q) use ($id){
    $q->where('site_id', $id);
})->get();