Добрый вечер.
Зачем Вам htmlspecialchars при записи в базу?
Другое дело при выводе из базы на страницу сайта, то да, используется htmlspecialchars().
Но для этого в yii2 есть два метода, Html::encode и Html::decode(), а они как раз и используют htmlspecialchares().
Вот и используйте возможности framework-a. При выводе в браузер применяйте Html::encode().
А как у Вас обязательность полей связана с htmlspecialchars?
Есть события beforeSave, beforeValidate и другие где Вы можете сделать любые преобразования, валидатор 'required' тут при чем?
К примеру можно обработать с помощью trim, ['address', 'trim'], он уберет пробелы.
А если туда будут вводить всякие html теги, их нужно как то заэкранировать
Как бы странно не звучало но зона ответственности валидатора - валидация данных. Валидатор не производит изменения данных, только сообщает модели, верные ли данные она хранит.
Хотите чтобы валидация модифицировала данные - не пользуйтесь фреймворком - используйте лучшие практики глобальных переменных, спагетти-кода, GOD-объектов, магических чисел и прочих технологий