簡體   English   中英

從模型獲取所有在樞軸表Laravel 5中沒有條目的記錄

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

我試圖弄清楚如何實現以下目標。 我搜索了,搜索都沒有用。

我在Laravel 5應用程序中有一個數據透視表,該數據透視表按預期工作,並且在各個模型中具有以下功能。

// 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);

我遇到的問題是,我希望能夠獲取所涉及站點的數據透視表中沒有相關記錄的所有模塊。

任何人都可以指出正確的方向,說明我如何以正確的方式實現這樣的目標(我可以想到一些方法,但看起來確實很笨拙)

提前致謝。 中號

在這種情況下,從Module端開始查詢,並使用whereDoesntHave排除是whereDoesntHave

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM