[ 'class' => LanguageBehavior::className(), ], 'timestamp' => [ 'class' => TimestampBehavior::className(), ], ]; } /** * @inheritdoc */ public function rules() { return [ [ [ 'status', ], 'boolean', ], [ [ 'sort', 'image_id', ], 'integer', ], [ [ 'image_id', ], 'exist', 'targetClass' => Image::className(), 'targetAttribute' => 'id', ], ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'id' => Yii::t('catalog', 'ID'), 'groupId' => Yii::t('catalog', 'Group ID'), 'image_id' => Yii::t('catalog', 'Image ID'), 'sort' => Yii::t('catalog', 'Sort'), 'status' => Yii::t('catalog', 'Status'), 'created_at' => Yii::t('catalog', 'Created At'), 'updated_at' => Yii::t('catalog', 'Updated At'), ]; } /** * Return ActiveQuery to get Image for exact Option if exist * * @return \yii\db\ActiveQuery */ public function getImage() { return $this->hasOne( Image::className(), [ 'id' => 'image_id', ] ); } /** * Get exact Option Group id value * * @return int|null */ abstract public function getGroupId(); /** * Set Option Group link to Option model * * @param int $id * * @return void */ abstract public function setGroupId(int $id); /** * Get Group query * * @return \yii\db\ActiveQuery */ abstract public function getGroup(): ActiveQuery; }