Не обновляется объект, не работает save()

Поясню.
Пакет создал в CMPGenerator, новые объекты создаются прекрасно, но существующие не хотят обновляться.

Вот код сниппета, который должен обновить существующую запись в БД:

<?php

$modx->addPackage('profut', $modx->getOption('core_path').'components/profut/model/');

$user = $modx->getUser();
$pfUser = $modx->getObject('ProfutUsers', array('uid' => $user->get('id')));
$pfUserArray = array();

if ($pfUser) { // true
    echo "update ";
    $pfUserArray = $pfUser->toArray();
}
else {
    echo "create ";
    $pfUser = $modx->newObject('ProfutUsers');
    $pfUserArray['uid'] = $user->get('id');
    $pfUserArray['team_id'] = 0;
    $pfUserArray['role'] = 0;
}

echo $pfUser->get('way_id') . ' '; // 1
// ((int) $hook->getValue('casetype')) == 2
$pfUserArray['way_id'] = ((int) $hook->getValue('casetype'));

$pfUser->fromArray($pfUserArray);
echo $pfUser->get('way_id') . ' '; // 2

$pfUser->save();
echo $pfUser->get('way_id') . ' '; // 2

$pfUser = $modx->getObject('ProfutUsers', array('uid' => $user->get('id')));
echo $pfUser->get('way_id') . ' '; // 1

die();

и вот что я вижу:

update 1 2 2 1

Что я делаю не так!? :/
Может я чего-то не понимаю? ^^
Aleksandr Kazantsev
27 октября 2017, 10:00
modx.pro
628
0

Комментарии: 1

Aleksandr Kazantsev
27 октября 2017, 17:02
0
Методом тыка удалось выяснить, что запрос не проходит из-за дополнительных текстовых полей, в которых содержатся круглые скобки:

$pfUserArray['edu_inst'] = strip_tags(htmlspecialchars(mysql_escape_string($hook->getValue('eduinst'))));
При чем не помогает даже экранизация скобок, только полное их удаление из строки, тогда запрос проходит. Я в замешательстве :/
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1