Table % is not supported. File not found.

Тема в разделе "Программирование", создана пользователем kidont, 28.11.2011.

  1. Offline

    kidont Недавно здесь

    Регистрация:
    27.11.2011
    Сообщения:
    2
    Симпатии:
    0
    Пол:
    Мужской
    Всем привет.
    Что имеем:
    Joomla 1.5
    Минимум модификаций.
    Пишу компонент по MVC стандарту.

    Структура
    models -> common_model (написано мной и работает)
    tables -> my_table_one (написано мной и работает), my_table_two (не работает)
    controller.php

    Что делаю - my_table_two - копия первого с измененной структурой под нужную таблицу.

    class TableGISMyTableOne extends JTable
    {
    var $id = null;
    var $catid = null;
    var $title = null;
    var $alias = null;

    function __construct( &$db ) {
    parent::__construct( '#__gis_coordinate', 'id', $db );
    }

    }


    class TableGISMyTableTwo extends JTable
    {
    var $id = null;
    var $catid = null;
    var $title = null;
    var $alias = null;
    var $link = null;

    function __construct( &$db ) {
    parent::__construct( '#__gis_hyper', 'id', $db );
    }

    }

    При попытке создания второй таблицы (& $this->getTable('gismytabletwo');) - вылезает ошибка.
    а первая таблица создается БЕЗ Проблем...
    Причем, если в том месте, где надо создать вторую таблицу - вписать создание первой - то таблица создается.
    Уже всю голову сломал, не получается ничего...
     
  2.  
  3. Offline

    kidont Недавно здесь

    Регистрация:
    27.11.2011
    Сообщения:
    2
    Симпатии:
    0
    Пол:
    Мужской
    Самое интересное, что
    & $this->getTable('GISMyTableTwo'); выдает искомую ошибку...

    А вот такая конструкция таблицу создает...
    & $this->_createTable( 'GISMyTableTwo', 'Table' , $option = Array());


    Вторая конструкция взята из сырцов от getTable:

    function &_createTable( $name, $prefix = 'Table', $config = array())
    {
    $result = null;

    // Clean the model name
    $name = preg_replace( '/[^A-Z0-9_]/i', '', $name );
    $prefix = preg_replace( '/[^A-Z0-9_]/i', '', $prefix );

    //Make sure we are returning a DBO object
    if (!array_key_exists('dbo', $config)) {
    $config['dbo'] =& $this->getDBO();;
    }

    $instance =& JTable::getInstance($name, $prefix, $config );
    return $instance;
    }

    function &getTable($name='', $prefix='Table', $options = array())
    {
    if (empty($name)) {
    $name = $this->getName();
    }

    if($table = &$this->_createTable( $name, $prefix, $options )) {
    return $table;
    }

    JError::raiseError( 0, 'Table ' . $name . ' not supported. File not found.' );
    $null = null;
    return $null;
    }

    $polylineTableRow =& $this->getTable('phocamapspoint');
     

Поделиться этой страницей

Загрузка...