Search code examples
phplaravel-5illuminate-container

How to get value from all index of collection in laravel Illuminate?


I have to query data from DB to using Illuminate in laravel then I want to get all the attribute value from all index of this array.

array:36 [▼
  0 => RepaymentSchedule {#553 ▶}
  1 => RepaymentSchedule {#554 ▶}
  2 => RepaymentSchedule {#555 ▶}
  3 => RepaymentSchedule {#556 ▶}
  4 => RepaymentSchedule {#557 ▶}
  5 => RepaymentSchedule {#558 ▶}
  6 => RepaymentSchedule {#559 ▶}
  7 => RepaymentSchedule {#560 ▶}
  8 => RepaymentSchedule {#561 ▶}
  9 => RepaymentSchedule {#562 ▶}
  10 => RepaymentSchedule {#563 ▶}
  11 => RepaymentSchedule {#564 ▶}
  12 => RepaymentSchedule {#565 ▶}
  13 => RepaymentSchedule {#566 ▶}
  14 => RepaymentSchedule {#567 ▶}
  15 => RepaymentSchedule {#568 ▶}
  16 => RepaymentSchedule {#569 ▶}
  17 => RepaymentSchedule {#570 ▶}
  18 => RepaymentSchedule {#571 ▶}
  19 => RepaymentSchedule {#572 ▶}
  20 => RepaymentSchedule {#573 ▶}
  21 => RepaymentSchedule {#574 ▶}
  22 => RepaymentSchedule {#575 ▶}
  23 => RepaymentSchedule {#576 ▶}
  24 => RepaymentSchedule {#577 ▶}
  25 => RepaymentSchedule {#578 ▶}
  26 => RepaymentSchedule {#579 ▶}
  27 => RepaymentSchedule {#580 ▶}
  28 => RepaymentSchedule {#581 ▶}
  29 => RepaymentSchedule {#582 ▶}
  30 => RepaymentSchedule {#583 ▶}
  31 => RepaymentSchedule {#584 ▶}
  32 => RepaymentSchedule {#585 ▶}
  33 => RepaymentSchedule {#586 ▶}
  34 => RepaymentSchedule {#587 ▶}
  35 => RepaymentSchedule {#588 ▶}
]

I have try to used bellow

$collapsed = $loan->schedule->all();
  dd($collapsed);

  $collection = $collapsed->each(function ($item, $key) {
    dd($key);
  });

Solution

  • In laravel 5.1 and above you can use the pluck method of the Collection object:

    $plucked = $collapsed->pluck('id');
    
    dd($plucked->all());
    

    Docs: https://laravel.com/docs/5.2/collections#method-pluck

    But since you are using L5.0 this isnt possible, I suggest you solve this by the PHP5 method array_column function instead:

    $ids = array_column($collapsed->toArray(), 'id');
    dd($ids);
    

    Edit: If you want to retrieve more than one attribute you can use the ->lists() method:

    $values = $loan->schedule->lists('id', 'interest', 'principal');
    dd($values);