как через xPDO обратится к своим таблицам

СУТЬ ПРОБЛЕМЫ: Таблица в базе с префиксом taxi_.
$new_route = $modx->newObject('Routes');
выдает ошибку что таблица modx_routes не найдена. Как указать что мне надо с другим префиксом!


Создал 2 таблицы с префиксом taxi_ (taxi_routes, taxi_orders). Сделал по ним модель, схему, кое как разобрался с подготовкой к работе с таблицей через xpdo. В core/components создал папку taxi и сделал все как описано в статье. Проблемы были в отсутствии в папке model файла taxi.class.php. Видимо он куда то делся при генерации модели базы и схемы ( а может и я там успел покопаться)
К странице сайта подключаю снипет со следующим кодом:
<?php
$taxi = $modx->getService('taxi','Taxi',$modx->getOption('taxi.core_path',null,$modx->getOption('core_path').'components/taxi/').'model/taxi/',$scriptProperties);
if (!($taxi instanceof Taxi)) return '';
 
/* setup default properties */
$tpl = $modx->getOption('tpl',$scriptProperties,'rowTpl');
$sort = $modx->getOption('sort',$scriptProperties,'name');
$dir = $modx->getOption('dir',$scriptProperties,'ASC');
 
 
$output=array();
$output[] = '<b>Проверка на наличие таблицы маршрутов:</b>';
$tablexists = $modx->query("SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = '".$modx->getOption('dbname')."' AND table_name = 'taxi_routes'");
if(!$tablexists->fetch(PDO::FETCH_COLUMN)){
    $m = $modx->getManager();
    $created = $m->createObjectContainer('Routes');
    $output[]="Таблица создана";
}else $output[]="Таблица найдена";
$output[] = '<b>Проверка на наличие таблицы заказов такси:</b>';
$tablexists = $modx->query("SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = '".$modx->getOption('dbname')."' AND table_name = 'taxi_orders'");
if(!$tablexists->fetch(PDO::FETCH_COLUMN)){
    $m = $modx->getManager();
    $created = $m->createObjectContainer('Orders');
    $output[]="Таблица создана";
}else $output[]="Таблица найдена";


return implode($output,"
");
Запускаю на выполнение, все вроде бы проходит нормально! На экране показывается
Проверка на наличие таблицы маршрутов:
Таблица найдена
Проверка на наличие таблицы заказов такси:
Таблица найдена
Ошибок в журнале нет, все хорошо. Далее пишу чтение или запись в базу, и тут пошли ошибки:
//Обращение к таблице
$routes = $modx->getCollection('Routes');

$output[] = '
<b>Доступные маршруты: '.count($routes).'</b>';

$new_route = $modx->newObject('Routes');
$new_route->fromArray(array(
    'from' => 'Пункт А',
    'to' => 'Пункт Б',
    'distance'=>300,
    'price1'=>10,
    'price2'=>20,
    'price3'=>30
));
$new_route->save();
В журнале пишет что не может найтись таблица modx_routes. Как указать что мне надо с префиксом taxi_routes?

[2014-01-29 14:34:26] (ERROR @ /index.php) Error 42S02 executing statement: 
Array
(
    [0] => 42S02
    [1] => 1146
    [2] => Table 'compse2m_modx1.modx_routes' doesn't exist
)
Дмитрий Крахмалев
29 января 2014, 10:56
modx.pro
1
1 438
0

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

Виталий Киреев
29 января 2014, 15:43
0
Префикс задается в addPackage
$modx->addPackage('mypkg',MODX_CORE_PATH.'components/mypkg/model/','mypkg_');
    Дмитрий Крахмалев
    29 января 2014, 15:59
    0
    Огромное спасибо! Все заработало. а у меня было указано без 3 параметра!
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2