@SibVektor

Как обновить объект в MODX?

Поясню.
Пакет создал в 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

Что я делаю не так!? :/
Может я чего-то не понимаю? ^^
  • Вопрос задан
  • 164 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы