FromNestedArraysQueryExport.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace Maatwebsite\Excel\Tests\Data\Stubs;
  3. use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
  4. use Illuminate\Database\Eloquent\Relations\Relation;
  5. use Illuminate\Database\Query\Builder;
  6. use Maatwebsite\Excel\Concerns\Exportable;
  7. use Maatwebsite\Excel\Concerns\FromQuery;
  8. use Maatwebsite\Excel\Concerns\WithMapping;
  9. use Maatwebsite\Excel\Tests\Data\Stubs\Database\Group;
  10. class FromNestedArraysQueryExport implements FromQuery, WithMapping
  11. {
  12. use Exportable;
  13. /**
  14. * @return Builder|EloquentBuilder|Relation
  15. */
  16. public function query()
  17. {
  18. $query = Group::with('users');
  19. return $query;
  20. }
  21. /**
  22. * @param Group $row
  23. * @return array
  24. */
  25. public function map($row): array
  26. {
  27. $rows = [];
  28. $sub_row = [$row->name, ''];
  29. $count = 0;
  30. foreach ($row->users as $user) {
  31. if ($count === 0) {
  32. $sub_row[1] = $user['email'];
  33. } else {
  34. $sub_row = ['', $user['email']];
  35. }
  36. $rows[] = $sub_row;
  37. $count++;
  38. }
  39. if ($count === 0) {
  40. $rows[] = $sub_row;
  41. }
  42. return $rows;
  43. }
  44. }