我遇到了有关更改默认表名称
的问题class Application_Model_DbTable_Game extends Zend_Db_Table_Abstract
{
protected $_name = 'games';
错误:
消息:SQLSTATE [42S02]:未找到基表或视图:1146表'gamenomad_dev.game'不存在
帮助我...它应该很简单!
*编辑 这里的问题是Zend Framework应该从默认的“游戏”到“游戏”中检测已更改的表名。
答案 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)
显示您的问题的实际行和堆栈跟踪,也许您正在以不读取实际表名的方式生成查询。