Example #1
0
 /**
  * Get data
  *
  * @return array
  */
 public function getData()
 {
     if (isset($this->loadedData)) {
         return $this->loadedData;
     }
     $this->filterPool->applyFilters($this->collection);
     $items = $this->collection->getItems();
     /** @var Customer $customer */
     foreach ($items as $customer) {
         $result['customer'] = $customer->getData();
         $addresses = [];
         /** @var Address $address */
         foreach ($customer->getAddresses() as $address) {
             $addressId = $address->getId();
             $address->load($addressId);
             $addresses[$addressId] = $address->getData();
             $this->prepareAddressData($addressId, $addresses, $result['customer']);
         }
         if (!empty($addresses)) {
             $result['address'] = $addresses;
         }
         $this->loadedData[$customer->getId()] = $result;
     }
     return $this->loadedData;
 }