fields as $v) { /** @var Input $f */ $f = $v['field']; if (method_exists($f, 'preload')) { $name = $f->name(); if (isset($data[ $name ])) { if (! is_array($data[ $name ])) { $data[ $name ] = [ $data[ $name ] ]; } if (! isset($this->preload[$name])) { $this->preload[$name] = 0; } foreach ($data[ $name ] as &$vv) { $f->preload($vv); $vv = static::PRELOAD . $this->preload[$name]; $this->preload[$name]++; } unset($vv); } } } # Предзагруженные данные храним в параметре $this->default if ($this->savedKey) { $this->default[ $this->savedKey ][] = $data; } else { $this->default[] = $data; } } }