Здравствуйте! Сорри, только добрался к компу норма

Здравствуйте! Сорри, только добрался к компу нормально.

Видел, вы на modxим написали, что вопрос решен, тем не менее я не увидел, чтобы кто-то расписал решение, и вы тоже не написали в чем именно проблема была. Немного напишу по этому поводу.

Итак, есть предположение, что пользователь, которого вы получаете, в таблице имеет class_key = 'modUser', а по этой причине даже если вы в запросе указываете $user = $modx->getObject('extUser', array('username:=' => $nickname)), вы все равно в итоге получите объект от класса modUser, а не extUser. И таблица для этого объекта будет родная, а не расширенная. Почему? Потому что инстанс конечного объекта зависит от того, какой class_key прописан в получаемой записи. Очень подробно про это писал здесь: modxclub.ru/blog/166.html

Резюмирую: для того, чтобы у вас работало как положено, у вас записи в вашей таблице должны в колонке class_key содержать имя вашего класса. Только тогда, при сохранении объекта, если это будет инстанс вашего класса, будет запись выполнена в вашу таблицу. А так получается, что запрос на селект выполнен корректно с учетом вашей таблицы, но в полученных записях class_key = 'modUser', хоть и с данными из вашей таблицы. Конечный объект — modUser, его таблица по мап-файлу — site_users, и при сохранении туда данные и пишутся.

Попробуйте в консоли так сделать:

print $modx->getObject('extUser', array('username' => $nickname))->get('class_key');

Что напишет?

И тут же попутно:

a. user>save();b.user->save(); b. user->addOne(data,Data);data, 'Data'); user->save(); c. $data->save();

Лишний раз сохраняете. Это ни к чему. Достаточно так: $user->addOne($data, 'Data');

Если связь прописана в мап-файле корректно, то $data сохранится автоматически при сохранении объекта юзера.