我有新聞表,大約有 5000 行,每行都有建筑物 id:public function building(){ return $this->belongsTo(\App\Building::class);}所以,建筑物有狀態(tài)名稱。我需要選擇所有狀態(tài),但僅在任何文章具有該狀態(tài)時(shí)才顯示。我試過:$news->pluck('building.status')->unique()->filter()->toArray();它工作正常,但占用了大約 70MB 的內(nèi)存。所以,這不適合我的情況。我找到了一個(gè)解決方案,看起來只需要 3mbNews::with(['building' => function($query){ $query->groupBy('status'); }])->get();但我只需要獲取沒有任何不同信息的狀態(tài),以防止 PHP 端進(jìn)行過濾。我怎樣才能得到它?也許有不同的方式?謝謝!
1 回答

呼如林
TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊
News::with('building')->get()->pluck('building.status')->unique()->values();
這稱為預(yù)加載,因?yàn)槲覀儽仨氈付ㄏ嚓P(guān)關(guān)系來優(yōu)化 SQL 查詢。
- 1 回答
- 0 關(guān)注
- 84 瀏覽
添加回答
舉報(bào)
0/150
提交
取消