Не обновляется объект, не работает save()
Поясню.
Пакет создал в CMPGenerator, новые объекты создаются прекрасно, но существующие не хотят обновляться.
Вот код сниппета, который должен обновить существующую запись в БД:
и вот что я вижу:
Что я делаю не так!? :/
Может я чего-то не понимаю? ^^
Пакет создал в 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
Что я делаю не так!? :/
Может я чего-то не понимаю? ^^
Комментарии: 1
Методом тыка удалось выяснить, что запрос не проходит из-за дополнительных текстовых полей, в которых содержатся круглые скобки:
$pfUserArray['edu_inst'] = strip_tags(htmlspecialchars(mysql_escape_string($hook->getValue('eduinst'))));
При чем не помогает даже экранизация скобок, только полное их удаление из строки, тогда запрос проходит. Я в замешательстве :/
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.