У меня есть некоторые проблемы с моделью для функции whereIn. Я хочу получить данные, которые выглядят следующим образом:
[
{
"product_id": "8614530b-2d6b-4750-941a-ef123105eaca",
"product_name": "product1",
"country_id": "c4c3d36b-e32c-4687-82ed-afdff7a17735",
"country_name": "Greece"
},
{
"product_id": "8614530b-2d6b-4750-941a-ef123105eaca",
"product_name": "product1",
"country_id": "c4c3d36b-e32c-4687-82ed-afdff7a17735",
"country_name": "Hungary"
},
{
"product_id": "2bee007f-ca28-410b-b4b4-779e7ef180b6",
"product_name": "product2",
"country_id": "7aa06799-f6fc-4837-9a0f-9821cd98e729",
"country_name": "Hungary"
},
{
"product_id": "2522e1f8-1bee-43ed-8e96-7bdb540dfeec",
"product_name": "product3",
"country_id": "7aa06799-f6fc-4837-9a0f-9821cd98e729",
"country_name": "Hungary"
}
]
Итак, я хочу искать заказы для каждой страны и продукта, потому что продукт 1 находится в 2 странах, а другие - только в 1 стране, поэтому они не могут видеть заказ на этот продукт в других странах. Итак, я попробовал что-то вроде этого:
$products = UserAgent::getUserProducts(); // returns data
$orders = Orders::with('details.status', 'client', 'product', 'products');
foreach ($products as $key => $permission){
$orders->whereIn('product_name', $permission['product_name']);
$orders->whereIn('country_id', $permission['country_id']);
}
return $orders->get();
и он всегда дает эту ошибку:
Аргумент 1, переданный в Illuminate \ Database \ Query \ Builder :: cleanBindings (), должен иметь тип массив, заданная строка
Есть идеи, как это исправить?