public function validateName($attribute, $params) { $category_exists = Categories::find()->where(['name' => $this->category_name, 'parent_id' => null, 'category_type_id' => $this->category_type_id])->exists(); if ($category_exists) { $this->addError($attribute, 'Already exists'); } }
/** * Ищет перевод по категории и языку. Если не находит, создает новый с названием оригинала * @param int $category_id * @param int $lang_id * @return array */ public static function getTranslation($category_id, $lang_id) { $translation = self::findOne(['category_id' => $category_id, 'language_id' => $lang_id]); if (!$translation) { $original_name = Categories::find()->select('name')->where(['id' => $category_id])->scalar(); $translation = new self(); $translation->name = $original_name; $translation->category_id = $category_id; $translation->language_id = $lang_id; $translation->save(); } return $translation->toArray(); }