![](/img/trans.png)
[英]Accessing Pivot table “3rd Model relationship” in Laravel Eloquent
[英]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.