2 回答

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊
如果您真的想這樣做,那么您已經(jīng)不遠(yuǎn)了,但您真的不需要第一個(gè)pluck,因?yàn)闊o論如何只會有 3 個(gè)字段。然后,您可以pluck將company_id和campaign_id列分別用于接下來的 2 個(gè)查詢:
$ids = DB::table('clients_campaigns')
->where('user_id', $request->user_id)
->get(['company_id', 'campaign_id']);
if ($ids->notEmpty()) {
$companyNames = Company::whereIn('id', $ids->pluck('company_id'))
->pluck('name');
$campaignNames = Campaign::whereIn('id', $ids->pluck('campaign_id'))
->pluck('name');
}
如果您在第一個(gè)查詢中使用 pluck,您將有一個(gè)鍵控列表,campaign_id那么您將不得不只使用查詢的鍵和Campaign查詢的值Company。
您還可以選擇將查詢對象傳遞給whereIn調(diào)用。

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊
以您當(dāng)前的示例為例,您可以將第一個(gè)查詢的結(jié)果檢索到一個(gè)集合中,然后使用該集合為每個(gè)后續(xù)查詢提取結(jié)果。
將其付諸實(shí)踐將如下所示:
$ids = \DB::table('clients_campaigns')->select('company_id','campaign_id')
->where('user_id',$request->user_id)
->get();
->pluck('company_id','campaign_id');
if ($ids->count()) {
//use those id's to retrieve the company names and campaign names
Company::select('name')->whereIn('id', $ids->pluck('company_id'));
Campaign::select('name')->whereIn('id', $ids->pluck('campaign_id'));
}
- 2 回答
- 0 關(guān)注
- 136 瀏覽
添加回答
舉報(bào)