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