YiiFramework метод getId() неожиданно вернул 0

gizmo1308

Новичок
Всем привет! я новичок в Yii2, поэтому могу путаться в терминологии, заранее извините, если что не так.

Суть проблемы. В приложении в базе данных изначально занесены пользователи, которые имеют доступ к нему. Соответственно, при изменении или создании из приложения каких-то данных в других таблицах бд, если требуется сохранить пользователя, который это сделал, используется Yii::$app->user->identity->getId(). До этого момента все понятно и логично.

Но сегодня столкнулся с тем, что при изменении данных из-под моего аккаунта в базу в значение изменившего юзера был занесен 0, который, естественно, не является ни моим id, ни чьим бы то ни было. По умолчанию для данного поля таблицы стоит null, т.е. этому 0 вообще неоткуда было взяться.

Подозрение было на то, что страница долгое время была неактивна, но в таком случае, если истекло время сессии, меня должно было просто выбросить из приложения на страницу авторизации. Ну и как-то это тоже не логично.

Перекопали с гораздо более опытными ребятами все, что могли, но даже близко не смогли понять, в чем могла быть ошибка. При последующих сохранениях все проходило как было задумано. Кода нет, потому что даже не представляю, что может понадобиться. Все довольно стандартно и до того момента подобных проблем замечено не было.

Может, есть какие-то соображения о причинах такого поведения?
 

pr1

Новичок
Я не спец в Yii, но возможно перед записью в базу делается приведение null к int, что делает 0. А вообще, чтобы не было таких проблем, во-первых перед записью всегда делайте проверки, во-вторых используйте внешние ключи в базе.
 
Сверху