Как получить дубликаты данных

#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 , то она бы их вернула. Ваш вариант использования неясен или ваша структура базы данных. Под повторным использованием я подразумевал повторное использование результирующего массива, а не выполнение нескольких запросов.