簡體   English   中英

Laravel 5.1 /雄辯:如何使用第三張表從第二張表中進行選擇

[英]Laravel 5.1 / Eloquent: How do I use a 3rd table to select from the second table

我有三個表:用戶,采購訂單和批准。

一個采購訂單必須由多個用戶批准。

創建新的Purchase_order時,我還將創建3個屬於該PO的審批。

批准表具有一個字段allowed_user_type ,該字段確定誰可以批准它。

我不知道,選擇可以由特定用戶批准的待定 采購訂單的雄辯方式是什么,因為這些是從批准表中確定的。


到目前為止,我可以在User模型中使用以下內容從用戶的批准表中提取待處理的 批准

public function approvals_pending()
{
    return $this->hasMany('App\Approval', 'allowed_user_type', 'user_type')
            ->where('approved', '=', 0);
}

問題是,如何將其與理論過濾器結合起來?

我的意思是理想情況下,我想寫:

return $this->hasMany('App\PO')->whereIn('id', '=', $this->approvals_pending()->get()->po_id);

或類似的東西...

任何想法將不勝感激。

OK,對於感興趣的人,我找到了解決方案:

這與我認為我必須寫的內容非常接近。

列表方法基本上是在所選字段之外創建一個數組,因此可以將其直接插入whereIn方法,如下所示:

    return \App\PO::whereIn('id', $this->approvals_pending()->lists('po_id'));

我不知道這是否是最雄辯的方法,但它確實有效。

暫無
暫無

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

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