yii2 ActiveRecord Публичные поле (свойства) модели и метод attributes -- что пишется в базу, -- записывает не все атрибу

По-идее attributes() по умолчанию возвращает как раз все нестатические публичные поля, но его поведение можно и переопределить.

Проблема

В базу почемуто пишутся только те значения из attributes, которых нет как публичных полей.

Возможные решения

Собственно решение

Ваша ошибка в том, что вы добавили одноимённые со столбцами таблицы БД публичные свойства атрибутов в модель User, тогда как ActiveRecord, от которого наследуется модель, сам их забирает из rules[], соответственно он не знает с чем ему работать - с виртуальными свойствами или с БД.

-- т.е. для ActiveRecord всё что пишется в базу должно указывать в attributes и при этом поля с теми же именами не должны быть в классе как публичные свойства.