Zend_Db_Table_Abstract $ _name не работает - PullRequest
0 голосов
/ 06 января 2012

Я столкнулся с проблемой изменения имени таблицы по умолчанию

class Application_Model_DbTable_Game extends Zend_Db_Table_Abstract
{

protected $_name = 'games';

Ошибка:

Сообщение: SQLSTATE [42S02]: Базовая таблица или представление не найдены: 1146 Таблица 'gamenomad_dev.game'не существует

Помогите мне ... это должно быть просто!

* РЕДАКТИРОВАТЬ Проблема здесь в том, что Zend Framework должен обнаруживать измененное имя таблицы из "игры" по умолчаниюв «игры».

Ответы [ 2 ]

0 голосов
/ 13 января 2012

Показать фактическую строку и трассировку стека для вашей проблемы, возможно, вы генерируете свой запрос так, чтобы он не читал реальное имя таблицы.

0 голосов
/ 13 января 2012

В ZF вам нужно жестко кодировать вашу таблицу базы данных для модели.Он не сканирует изменения базы данных.У вас есть два способа:

Создать класс с именем таблицы

class Game extends Zend_Db_Table_Abstract
{
    // default table name: game
}

Если вы хотите использовать пути по умолчанию ZF, вы должны поместить модель DBTable в каталог application/models/dbtableи назовите ваш класс как Application_Model_DbTable_Game - тогда ZF знает, что он должен искать game таблицу

Создать класс с любым именем

например, ExtraGameTable и установитьего параметры для отображения имени таблицы:

class ExtraGameTable extends Zend_Db_Table_Abstract
{
    protected $_name = 'game';
}

Как указано в документации: http://framework.zend.com/manual/en/zend.db.table.html

Если вы не укажете имя таблицы, по умолчанию будет указано имяучебный класс.Если вы полагаетесь на это значение по умолчанию, имя класса должно соответствовать написанию имени таблицы, как оно отображается в базе данных.

Вы можете попробовать объединить его с некоторым файлом конфигурации и загрузить имена таблиц оттуда, но все же - ZF ничего не узнает об изменениях в базе данных.

...