Поясню.
Пакет создал в 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
Что я делаю не так!? :/
Может я чего-то не понимаю? ^^