yii2 MongoDB\BSON\ObjectID -- пишется в базу как строка
Primary tabs
Проблема в том, что вызов типа:
$elm['paId'] = new \MongoDB\BSON\ObjectID($elm['paId']);
Приводит к появлению в базе монго строкового значения ужасного вида:
MongoDB\\BSON\\ObjectID(58ed00ce1e766679b85a73b7)
Причина
Судя по всему проблема была связана с обходом массива со ссылкой. По крайней мере, если обходить массив без ссылки, то всё будет нормально.
Проблема отчасти выявляется в Yii::trace(). Видимо дело в том, что обход по ссылке ломает что-то "в ссылках" (в памяти) и потом сохранение модели делает что-то похожее на Yii::trace() -- то есть проводит что-то не то с сериаллизацией (гипотеза)
Решение
Временное решение: не обходить массив по ссылке.
- Log in to post comments
- 2355 reads