diff --git a/migrations/m240819_102301_image.php b/migrations/m240819_102301_image.php index 93c72b0..063cf55 100644 --- a/migrations/m240819_102301_image.php +++ b/migrations/m240819_102301_image.php @@ -18,8 +18,8 @@ class m240819_102301_image extends Migration 'sha256' => Schema::TYPE_STRING . ' NOT NULL', 'original_name' => Schema::TYPE_STRING . ' NOT NULL' ]); - $this->addColumn('parameters', 'icon', 'INT(11) DEFAULT NULL'); - $this->addColumn('parameters', 'icon_gray', 'INT(11) DEFAULT NULL'); + $this->addColumn('parameters', 'icon_id', 'INT(11) DEFAULT NULL'); + $this->addColumn('parameters', 'icon_gray_id', 'INT(11) DEFAULT NULL'); } /** @@ -28,8 +28,8 @@ class m240819_102301_image extends Migration public function safeDown() { $this->dropTable('image'); - $this->dropColumn('parameters', 'icon'); - $this->dropColumn('parameters', 'icon_gray'); + $this->dropColumn('parameters', 'icon_id'); + $this->dropColumn('parameters', 'icon_gray_id'); } /* diff --git a/models/Parameter.php b/models/Parameter.php index 1cd17a5..8f8b90e 100644 --- a/models/Parameter.php +++ b/models/Parameter.php @@ -24,27 +24,12 @@ class Parameter extends \yii\db\ActiveRecord public function getIcon() { - return $this->hasOne(Image::class, [ 'id' => 'icon' ]); + return $this->hasOne(Image::class, [ 'id' => 'icon_id' ]); } public function getIconGray() { - return $this->hasOne(Image::class, [ 'id' => 'icon_gray' ]); - } - - public function fields() - { - $fields = parent::fields(); - - $fields['icon'] = function (Parameter $parameter) { - return $parameter->relatedRecords['icon']; - }; - - $fields['icon_gray'] = function (Parameter $parameter) { - return $parameter->relatedRecords['iconGray']; - }; - - return $fields; + return $this->hasOne(Image::class, [ 'id' => 'icon_gray_id' ]); } /** diff --git a/models/ParameterForm.php b/models/ParameterForm.php index 84dc013..f5f714a 100644 --- a/models/ParameterForm.php +++ b/models/ParameterForm.php @@ -55,28 +55,15 @@ class ParameterForm extends Model if ($param->type == 2) { if ($this->icon) { $icon = Image::fromUploadedFile($this->icon); - - // https://rent4health.com/wp-content/uploads/2020/02/Under-arm-crutches-1.png - if ($param->getAttribute('icon') !== null) { - $param->icon = $icon->id; - } else { - $param->setAttribute('icon', $icon->id); - } + $param->icon_id = $icon->id; } if ($this->iconGray) { $iconGray = Image::fromUploadedFile($this->iconGray); - - if ($param->getAttribute('icon_gray') !== null) { - $param->iconGray = $iconGray->id; - } else { - $param->setAttribute('icon_gray', $iconGray->id); - } + $param->icon_gray_id = $iconGray->id; } - - $param->setAttributes([ - 'icon' => $param->icon, - 'iconGray' => $param->iconGray, - ]); + } else { + $param->icon_id = null; + $param->icon_gray_id = null; } $param->setAttributes([ diff --git a/models/ParameterSearch.php b/models/ParameterSearch.php index 901da23..3ed23bb 100644 --- a/models/ParameterSearch.php +++ b/models/ParameterSearch.php @@ -24,7 +24,7 @@ class ParameterSearch extends Parameter public function search($params): ActiveDataProvider { - $query = Parameter::find()->with(['icon', 'iconGray']); + $query = Parameter::find();//->with(['icon', 'iconGray']); $dataProvider = new ActiveDataProvider([ 'query' => $query, diff --git a/views/list/index.php b/views/list/index.php index b7441ef..0fc6368 100644 --- a/views/list/index.php +++ b/views/list/index.php @@ -31,7 +31,7 @@ $this->title = 'params list'; 'label' => 'Icon', 'value' => function (Parameter $model) { if ($model->icon) { - $url = '/api/image?sha256=' . $model->getRelatedRecords()['icon']->sha256; + $url = '/api/image?sha256=' . $model->icon->sha256; return Html::a(Html::img($url, [ 'width' => 150, 'height' => 150 ]), $url, [ 'alt' => 'icon', 'target' => '_blank' ]); } }, @@ -50,7 +50,7 @@ $this->title = 'params list'; 'label' => 'Gray Icon', 'value' => function (Parameter $model) { if ($model->iconGray) { - $url = '/api/image?sha256=' . $model->getRelatedRecords()['iconGray']->sha256; + $url = '/api/image?sha256=' . $model->iconGray->sha256; return Html::a(Html::img($url, [ 'width' => 150, 'height' => 150 ]), $url, [ 'alt' => 'grayscale icon', 'target' => '_blank' ]); } },