255], [['url', 'type'], 'required'], ['url', 'unique'], ['type', 'in', 'range' => [self::TYPE_BANNED, self::TYPE_TRUSTED]], ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'id' => 'ID', 'url' => 'URL', 'type' => 'Тип', ]; } /** * @param int $type * @return string * @throws \Exception */ public static function typeText(int $type) { switch ($type) { case self::TYPE_BANNED: return 'Заблокированный'; case self::TYPE_TRUSTED: return 'Доверенный'; default: throw new \Exception('Unexpected UrlFilter type'); } } public static function getTypes(): array { return [ self::TYPE_BANNED => self::typeText(self::TYPE_BANNED), self::TYPE_TRUSTED => self::typeText(self::TYPE_TRUSTED) ]; } }