在controller index function
我正在挑選哪些新聞 id 與包 id 匹配:
$content_pack_news_array = DB::table('content_pack_news')->where('content_pack_id' , $content_pack_id)->get();
使用dd我得到這個結果,我需要訪問其中news_id的所有元素
Illuminate\Support\Collection {#3017 ▼
#items: array:2 [▼
0 => {#2376 ▼
"news_id": 2
"content_pack_id": 2
}
1 => {#3010 ▼
"news_id": 4
"content_pack_id": 2
}
]
}
如何回傳與 id 匹配的資料:
"news_id": 2
"news_id": 4
里面:
$news = News::with(['media', 'assigned_content_packs'])->where('id' , $news_id)->get();
如果我使用
$content_pack_news = DB::table('content_pack_news')->where('content_pack_id' , $content_pack_id)->first();
它可以作業,但它只會顯示第一個匹配的專案。任何幫助表示贊賞。
uj5u.com熱心網友回復:
您可以使用 pluck 來獲取 ID。
$newsIds = DB::table('content_pack_news')
->where('content_pack_id' , $content_pack_id)
->pluck('news_id');
Pluck 與 , 結合使用效果很好whereIn(),它根據陣列檢查列。
$news = News::with(['media', 'assigned_content_packs'])
->whereIn('id' , $newsIds)
->get();
uj5u.com熱心網友回復:
您可以使用子查詢在單個查詢中執行此操作:
$news = News::with(['media', 'assigned_content_packs'])
->whereIn('id', function($query) use($content_pack_id){
$query->select('news_id')
->from('content_pack_news')
->where('content_pack_id', $content_pack_id);
})
->get();
uj5u.com熱心網友回復:
如果我糾正你只問第一個。
$content_pack_news = DB::table('content_pack_news')->where('content_pack_id' , $content_pack_id)->first();
將其更改為 get(); 然后你得到所有的記錄。
$content_pack_news = DB::table('content_pack_news')->where('content_pack_id' , $content_pack_id)->get();
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/476994.html
