flatten() публичный Метод

public flatten ( )
Пример #1
0
 /**
  * @param RepeatingFieldCollection $collection
  *
  * @return RepeatingFieldCollection[]
  */
 public function update(RepeatingFieldCollection $collection)
 {
     $updated = [];
     // First give priority to already existing entities
     foreach ($collection->flatten() as $entity) {
         $master = $this->getOriginal($entity);
         $master->setValue($entity->getValue());
         $master->setFieldtype($entity->getFieldtype());
         $master->handleStorage($this->getFieldType($entity->getFieldname()));
         $updated[] = $master;
     }
     $deleted = [];
     foreach ($this->flatten() as $old) {
         if (!in_array($old, $updated)) {
             $deleted[] = $old;
         }
     }
     // Clear the collection so that we re-add only the updated elements
     $this->clear();
     foreach ($updated as $new) {
         $this->add($new);
     }
     return $deleted;
 }