Modx XPDO не может получить имя таблицы или ошибку класса

Я не могу понять это, я использую modx 2.6 с парой пользовательских таблиц, сервис загружается успешно, и я могу запускать функции из него, как только я получаю что-то из базы данных, я получаю ошибки:

(ERROR @ core/xpdo/xpdo.class.php : 1320) Could not get table class for class: Projects
(ERROR @ core/xpdo/xpdo.class.php : 1289) Could not get table name for class: Projects
(ERROR @ core/xpdo/xpdo.class.php : 762) Projects::getSelectColumns() is not a valid static method.
(ERROR @ core/components/projects/model/projects.class.php : 51) search SQL = SELECT `` FROM  AS `Projects` WHERE `Projects`.`id` = '2'
(ERROR @ core/xpdo/xpdo.class.php : 762) Projects::loadCollection() is not a valid static method.

Я проверил и дважды проверил, но не вижу ничего плохого...

вот моя схема (в ядре / компоненты / проекты / модель / проекты / схема /)

<model package="projects" baseClass="xPDOObject" platform="mysql" defaultEngine="InnoDB" version="1.1" >
    <object class="Projects" table="projects" extends="xPDOSimpleObject">
        <field key="title" dbtype="char" precision="50" phptype="string" null="false" />
        <!-- a bunch of fields -->
        <field key="published" dbtype="int" precision="1" attributes="unsigned" phptype="integer" null="false" default="0" />
        <composite alias="projectfiles" class="ProjectFiles" local="id" foreign="project_id" cardinality="many" owner="local" />

    </object>

    <object class="ProjectFiles" table="project_files" extends="xPDOSimpleObject">
        <field key="project_id" dbtype="int" precision="10" phptype="integer" null="false" default="0" index="index" />
         <!-- a bunch of fields -->
        <field key="published" dbtype="int" precision="1" attributes="unsigned" phptype="integer" null="false" default="0" />
        <aggregate alias="projects" class="Projects" local="project_id" foreign="id" cardinality="one" owner="foreign" />
    </object>
</model>

Вот мой файл класса:

<?php

if (!class_exists('Projects')) {

    class Projects {

        function __construct(modX & $modx,array $config = array()) {

            $this->modx =& $modx;

            $this->modx->setLogLevel(xPDO::LOG_LEVEL_ERROR);

            $this->modx->setLogTarget('FILE');

            setlocale(LC_MONETARY, 'en_CA');
            /*
            * This does not seem necessary
            if (!$this->modx->addPackage('projects',MODX_CORE_PATH.'components/projects/model/','modx_')) {

                $this->modx->log(modX::LOG_LEVEL_ERROR,'Problem adding projects package. ');
                return '<br />There was a problem adding your package.<br />';
            }
            */
        }

        public function testMe(){
            // this works
            echo 'test me';
            return 'test me';
        }

        /**
         *
         * test the class
         *
         */
        public function testClass(){

            $criteria = $this->modx->newQuery('Projects');
            $criteria->where(array('id:>=' => 1));
            $criteria->prepare();
            $sqlstring = $criteria->toSQL();
            $this->modx->log(modX::LOG_LEVEL_ERROR, 'search SQL = ' . $sqlstring);
            $projects = $this->modx->getCollection('Projects', $criteria);
            return;

        }

    } // end class projects

} // end if not projects

и для хихиканья, файл карты проектов:

<?php
$xpdo_meta_map['Projects']= array (
  'package' => 'projects',
  'version' => '1.1',
  'table' => 'projects',
  'extends' => 'xPDOSimpleObject',
  'tableMeta' => 
  array (
    'engine' => 'InnoDB',
  ),
  'fields' => 
  array (
    'title' => NULL,
    'tenderdate' => NULL,
    'description' => NULL,
    'projecttype' => NULL,
    'featured' => 0,
    'sqfoot' => 0,
    'status' => NULL,
    'deleted' => 0,
    'published' => 0,
  ),
   <!-- a bunch of fields -->
  'composites' => 
  array (
    'projectfiles' => 
    array (
      'class' => 'ProjectFiles',
      'local' => 'id',
      'foreign' => 'project_id',
      'cardinality' => 'many',
      'owner' => 'local',
    ),
  ),
);

Почему я получаю эти ошибки? Я проверил базу данных и таблицы присутствуют с данными, modx_projects и modx_project_files.
Migx умеет читать таблицы и добавлять / удалять данные из них. Почему мой класс проваливается?

0 ответов

Другие вопросы по тегам