Подключение своей таблицы в MODX Revolution

Добрый день.

В целях реализации разделения прав решил создать свою таблицу и работать с ней.

Создал таблицу, сгенерировал модель по инструкции. Теперь, как я понимаю, с этой таблицей можно работать с помощью стандартных методов ($modx->getObject(), $modx->getCollection()). Однако сначала надо этот новый класс подгрузить.

Таблица называется modx_rehab_access, путь к модели 'core/components/rehab/model/rehab/'. В этой папке сгенерировался файл access.class.php:
<?php
class Access extends xPDOSimpleObject {}
Создаю сниппет:
$modx->addPackage('rehab', $modx->getOption('core_path').'components/rehab/model/rehab/',
                'modx_rehab_');

$access = $modx->getObject('Access', array('id' => 1));
print_r($access); // Ничего не выводит, хотя в таблице запись есть

print '

Done';
Попробовал взять код из minishop
if (!isset($modx->rehab) || !is_object($modx->rehab)) {
  $modx->rehab = $modx->getService('rehab','Access',
           $modx->getOption('core_path').'components/rehab/model/rehab/', $scriptProperties);
  if (!($modx->rehab instanceof rehab)) return '';
}

$access = $modx->getObject('Access', array('id' => 1));
print_r($access); // Тоже пусто

print '

Done';
Подскажите, как правильно обращаться к созданному классу?

UPD. С целью протестировать редактирование своих вопросов, ну и для сообщества, допишу сюда решение проблемы:

С самого начала я все делал правильно, единственное — путь к новому классу нужно указывать только до папки /model/:
<?php
$modx->addPackage('rehab', $modx->getOption('core_path').'components/rehab/model/','modx_rehab_'); 
$access = $modx->getObject('Access',1);
print $access->get('uid');
Илья Уткин
12 сентября 2012, 06:59
modx.pro
4 689
0
Поблагодарить автора Отправить деньги

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

Иван Брежнев
12 сентября 2012, 12:21
0
А в таблице что-то есть?
И еще момент, $modx->getObject извлекает объект, не массив
print_r($access->toArray());

Access — вы точно нигде не ошиблись, у вас есть карта, схема и классы?
    Valentin Rasulov
    12 сентября 2012, 12:45
    0
    Илья, возможно глупость скажу. Смотри, возьми пвкет Doodles https://github.com/artdevue/Doodles, переименнуй под своё название (как переименовать уэе пописывал Василий где-то, да и можно найти решение), залей себе на сервер. А дальше, уже всё как по маслу…
        Илья Уткин
        12 сентября 2012, 13:28
        0
        Блин, это мне что же — для работы с маленькой табличкой целый пакет делать?

        Мне не нужно с ней работать из админки, не нужно писать процессоры для нее — нужна просто связь ресурс-пользователь…

        Класс уже есть, модель уже готова, xml-схема есть, осталось только указать, откуда класс подгрузить, чтобы работать с таблицей с помощью xPDO, а не прямых запросов в базу…

        Может, для каждого пользователя создавать отдельный ТВ и в него записывать, доступен ли ресурс этому пользователю, а потом делать выборку с &tvFilters…
          Василий Наумкин
          12 сентября 2012, 13:40
          0
          Покажите xml схему.

          Вы уверены, что надо модель подключать с указанием префикса 'modx_rehab_'? Это я так раньше извращался, при автогенерации xml, а вам оно наверное не надо.
            Илья Уткин
            12 сентября 2012, 13:49
            0
            <?xml version=«1.0» encoding=«UTF-8»?>

              Илья Уткин
              12 сентября 2012, 13:51
              0
              Таблица называется modx_rehab_access, у нее три поля id, did, uid. В поле did буду записывать id ресурса, а в поле uid — id пользователя
                Илья Уткин
                12 сентября 2012, 14:27
                0
                Нашел ошибку у себя путь надо было указывать только до 'model/'
              Илья Уткин
              12 сентября 2012, 14:29
              0
              Решение найдено. Правильное подключение созданной таблицы:

              $modx->addPackage('rehab', $modx->getOption('core_path').'components/rehab/model/','modx_rehab_');
              $access = $modx->getObject('Access',1);
              print $access->get('uid');
                Илья Уткин
                12 сентября 2012, 14:30
                0
                Блин))

                $modx->addPackage('rehab', $modx->getOption('core_path').'components/rehab/model/','modx_rehab_');
                Сергей Лелеко
                29 ноября 2012, 21:17
                0
                Илья, привет! У меня похожая проблема. Можете ли вы помочь советом? Если да то как с Вами связаться можно?
                  Илья Уткин
                  29 ноября 2012, 22:46
                  0
                  Skype ilyautkin
                  С десяти до семи вечера по будням я обычно онлайн
                  Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                  12