public function setupAlias()
{
if (empty($this->alias)) {
$aliases = [];
/* @var $role FarmRole */
foreach (static::findByFarmId($this->farmId) as $role) {
$aliases[] = $role->alias;
}
$this->alias = $this->role->name;
$n = 1;
do {
$this->alias = "{$this->role->name}-{$n}";
$n++;
} while (in_array($this->alias, $aliases));
} else {
if (count(static::find([['id' => ['$ne' => $this->id]], ['farmId' => $this->farmId], ['alias' => $this->alias]]))) {
throw new InvalidEntityConfigurationException("Alias must be unique within a farm");
}
}
}