#php #laravel #laravel-4
#php #laravel #laravel-4
Вопрос:
$id = [
0 => 604
1 => 604
2 => 550
]
$data = Parent_product::select('name', 'product_id')->whereIn('product_id', $ids)
->get()->toArray();
Result
[
[
"name" => "Tomato",
"product_id" => 604
],
[
"name" => "Patato",
"product_id" => 550
]
]
$id
Содержит два 604
, однако результат вернул только одну запись. Как заставить его возвращать дублированный результат с помощью Where ?
Expected result
[
[
"name" => "Tomato",
"product_id" => 604
],
[
"name" => "Tomato",
"product_id" => 604
],
[
"name" => "Patato",
"product_id" => 550
]
]
Комментарии:
1. Содержит ли база данных дубликаты? Если нет, то он не должен возвращать несколько записей. Если вам нужен продукт более одного раза, извлеките его данные один раз, а затем повторно используйте там, где вам нужно.
2. @El_Vanja Да. база данных также будет хранить несколько идентификаторов продукта_id. Мой вариант использования заключается в том, что пользователь может выбрать один и тот же продукт. Вот почему входные данные будут захватывать два
640
3. @El_Vanja Повторное использование данных означает, что мне нужно выполнить цикл foreach, чтобы получить результат?
4. Если бы база данных действительно содержала две одинаковые записи
product_id
, то она бы их вернула. Ваш вариант использования неясен или ваша структура базы данных. Под повторным использованием я подразумевал повторное использование результирующего массива, а не выполнение нескольких запросов.