ArticleCategory::class, 'targetAttribute'=>'ID'], [['cateName'], 'unique', 'targetClass'=>ArticleCategory::class, 'targetAttribute'=>'CATE_NAME'], [['sort'], 'integer', 'min'=>'0', 'max'=>'99'], ]; } public function attributeLabels() { return [ 'id' => 'ID', 'cateName' => '分类名称', 'sort' => '排序', ]; } /** * 指定校验场景 * @return array */ public function scenarios() { $parentScenarios = parent::scenarios(); $customScenarios = [ 'add' => ['cateName'], 'sort' => ['id', 'sort'], ]; return array_merge($parentScenarios, $customScenarios); } /** * 申请 * @return ArticleCategory|null * @throws \yii\db\Exception */ public function edit(){ if(!$this->validate()){ return null; } $db = \Yii::$app->db; $transaction = $db->beginTransaction(); try { $model = new ArticleCategory(); $model->CATE_NAME = $this->cateName; $model->STATUS = 1; $model->CREATED_AT = Date::nowTime(); if(!$model->save()){ throw new Exception(Form::formatErrorsForApi($model->getErrors())); } $transaction->commit(); } catch (Exception $e) { $transaction->rollBack(); $this->addError('edit', $e->getMessage()); return null; } return $model; } /** * 排序 * @return ArticleCategory|null */ public function sortTo(){ if(!$this->validate()){ return null; } $model = ArticleCategory::findOne(['ID'=>$this->id]); $model->SORT = $this->sort; if(!$model->save()){ $this->addError('sortTo', Form::formatErrorsForApi($model->getErrors())); return null; } return $model; } }