我有一個名為assignments的表,我在其中存盤了類別的 id 和分配給該類別的產品的 id。像這樣:

我正在尋找的查詢是獲取未分配給特定類別的所有產品。例如,如果類別為 id=1,則查詢必須回傳產品 4、5 和 6。
這是我嘗試過的代碼,但我無法實作我想要的。
$assignations = Assignation::where('category_id', $id)->orderBy('position', 'Asc')->get();
$no_variants_assigned = Variant::whereNotIn('id', function ($query) use ($assignations) {
$query->select('v.id')
->from('variants', 'v')
->where('v.id_product', $assignations->id);
})->orderBy('id_product', 'Asc')->get();
拜托了,我希望有人可以幫助我。謝謝
uj5u.com熱心網友回復:
試試這個代碼:
$id[] = 1;
$assigns = array_unique(Assignation::whereNotIn('category_id', $id)->pluck('product_id')->toArray());
$products = Product::whereIn('id', $assigns)->orderBy('id', 'Asc')->get();
return $products;
uj5u.com熱心網友回復:
Te @Pejman Kheyri 的回答不是我想要的,但他幫助我找到了解決方案:
public function getCategoryVariantAssignation($id){
$category = Category::findOrFail($id);
$assignations = array_unique(Assignation::where('category_id', $id)->pluck('product_id')->toArray());
$no_variants_assigned = Variant::whereNotIn('id', $assignations)->orderBy('id_product', 'Asc')->get();
$data = ['category' => $category, 'variants' => $no_variants_assigned];
return $data;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/330775.html
上一篇:Laravel多對多關系不起作用
