Zend_Db_Table_Abstract $ _name无效

时间:2012-01-06 06:36:07

标签: zend-db-table zend-framework tablename

我遇到了有关更改默认表名称

的问题
class Application_Model_DbTable_Game extends Zend_Db_Table_Abstract
{

protected $_name = 'games';

错误:

消息:SQLSTATE [42S02]:未找到基表或视图:1146表'gamenomad_dev.game'不存在

帮助我...它应该很简单!

*编辑 这里的问题是Zend Framework应该从默认的“游戏”到“游戏”中检测已更改的表名。

2 个答案:

答案 0 :(得分:0)

在ZF中,您必须硬编码您的数据库表进行建模。它不扫描数据库更改。你有两种方式:

创建包含表名

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

如果你想使用ZF的默认路径,你应该将DBTable模型放入application/models/dbtable目录并命名你的类Application_Model_DbTable_Game - 然后ZF知道它必须寻找game表< / p>

创建具有任何名称的类

e.g。 ExtraGameTable并将其参数设置为显示表名:

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

如文档中所述:http://framework.zend.com/manual/en/zend.db.table.html

  

如果未指定表名,则默认为   类。如果您依赖此默认值,则类名必须与   表名在数据库中的拼写。

您可以尝试将其与某些配置文件和加载表名称结合起来,但仍然--ZF不会知道有关基础数据库更改的任何信息。

答案 1 :(得分:0)

显示您的问题的实际行和堆栈跟踪,也许您正在以不读取实际表名的方式生成查询。