1, 'max' => 2], [['icon', 'iconGray'], 'file', 'mimeTypes' => 'image/*', 'maxSize' => 1024 * 1024, 'maxFiles' => 1], ]; } public function load($data, $formName = null) { return $this->setAttributes([ 'title' => $data['ParameterForm']['title'], 'type' => $data['ParameterForm']['type'], 'icon' => UploadedFile::getInstance($this, 'icon'), 'iconGray' => UploadedFile::getInstance($this, 'iconGray'), ]); } public function create(): int { $param = new Parameter(); if (!$this->title && !$this->type) { throw new Exception('title and type are required'); } $this->edit($param); return $param->id; } public function edit(Parameter $param): void { if ($this->title) { $param->title = $this->title; } if ($this->type) { $param->type = (int) $this->type; } if ($param->type == 2) { if ($this->icon) { $icon = Image::fromUploadedFile($this->icon); $param->icon = $icon->id; } if ($this->iconGray) { $iconGray = Image::fromUploadedFile($this->iconGray); $param->iconGray = $iconGray->id; } $param->setAttributes([ 'icon' => $param->icon, 'iconGray' => $param->iconGray, ]); } $param->setAttributes([ 'title' => $param->title, 'type' => $param->type, ]); $param->save(); } }