* @copyright (c), Thread */ class Language extends \thread\modules\sys\models\Language { /** * @return array */ public function behaviors() { return ArrayHelper::merge(parent::behaviors(), [ [ 'class' => AttributeBehavior::className(), 'attributes' => [ ActiveRecord::EVENT_BEFORE_INSERT => 'alias', ActiveRecord::EVENT_BEFORE_UPDATE => 'alias', ], 'value' => function ($event) { return Inflector::slug($this->alias); }, ], 'uploadBehavior' => [ 'class' => UploadBehavior::class, 'unlinkOnDelete' => false, 'attributes' => [ 'img_flag' => [ 'getBaseUploadPathOwner' => 'getBaseUploadPath', 'getBaseUploadUrlOwner' => 'getBaseUploadUrl', ], ] ], ]); } /** * @param $params * @return \yii\data\ActiveDataProvider */ public function search($params) { return (new search\Language())->search($params); } /** * @param $params * @return \yii\data\ActiveDataProvider */ public function trash($params) { return (new search\Language())->trash($params); } /** * @param $insert * @return mixed * @throws \yii\db\Exception */ public function beforeSave($insert) { if ($this->by_default == self::STATUS_KEY_ON) { self::getDb()->createCommand()->update(self::tableName(), ['by_default' => self::STATUS_KEY_OFF], 'id <> '.$this->id)->execute(); $this->deleted = self::STATUS_KEY_OFF; $this->published = self::STATUS_KEY_ON; } return parent::beforeSave($insert); } }