Laravel multiple query (PHP/MySQL)
Solution:
Try this code :
$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;
Edit:
Added checking the category if exists before getting data, so the code should be:
$category = Category::findOrFail($id);
$assigns = array_unique(Assignation::where('category_id', $id)->pluck('product_id')->toArray());
$variants = Variant::whereNotIn('id', $assigns)->orderBy('id_product', 'Asc')->get();
Answer
Solution:
Te @Pejman Kheyri answer is not what I want, but he helps me to find the solution:
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;
}
Source