Периодически использую в Yii расширение Zelenin\yii\behaviors\Slug для генерации slug, но никогда не заглядывал "под капот" как оно там работает. Сейчас заглянул - автор в цикле добавляет к сгенерированному slug число и проверяет нет ли такой записи в таблице.