owner->getAttribute($this->aliasField)) { $this->createAlias(); } return parent::beforeValidate($event); } private function createAlias() { $nextId = $this->owner->getAttribute($this->idField); if (!$nextId) { $nextId = 1; $queryRes = $this->owner ->getDbConnection() ->createCommand() ->select("MAX({$this->idField}) AS {$this->idField}") ->from($this->owner->tableName()) ->queryColumn(); if (count($queryRes)) { $nextId = $queryRes[0]; } } $this->owner->setAttribute($this->aliasField, StringsHelper::URLize($this->owner->getAttribute($this->captionField) . '-' . $nextId)); } }