Как заставить валидаторы не отрабатывать на пустом поле?
ну так unique и должен возвращать false если уже есть запись с пустым таким полем. По сути вопроса, не вдаваясь в подробности того что у вас там какая-то лажа, смотрите в сторону skipOnEmpty[['field_name'], 'string', 'skipOnEmpty' => true], //у стринг валидатора по-умолчанию и так 'skipOnEmpty' => true
Зачем валидировать пустые поля?
Про валидацию почитайте Проверка входящих данных