我正在尝试使用Zend框架而不使用MVC结构,特别是Db_Table
类。
我已经创建了几个代表我的数据库表的类,即
class DBTables_Templates extends Zend_Db_Table_Abstract
{
protected $_name = "templates";
}
当我尝试实例化此类(包括它很好)时,出现以下错误:
Fatal error: Uncaught exception 'Zend_Db_Table_Exception' with message 'No adapter found for DBTables_Templates'
有谁知道我如何创建和包括数据库适配器供
Db_Table
类使用?任何指针,不胜感激!我正在使用最新版本的ZF。
最佳答案
您需要创建一个Zend_Db_Adapter,这是用于连接数据库的类。
$db = new Zend_Db_Adapter_Pdo_Mysql(array(
'host' => '127.0.0.1',
'username' => 'webuser',
'password' => 'xxxxxxxx',
'dbname' => 'test'
));
或者,您可以使用
factory()
方法使实例化更具可配置性:$db = Zend_Db::factory('Pdo_Mysql', array(
'host' => '127.0.0.1',
'username' => 'webuser',
'password' => 'xxxxxxxx',
'dbname' => 'test'
));
参见http://framework.zend.com/manual/en/zend.db.html#zend.db.adapter.connecting
然后,将此适配器对象指定给您的表类。至少有三种方法可以执行此操作:
Zend_Db_Table_Abstract::setDefaultAdapter($db);
$table = new MyTable( array('db'=>$db) );
Zend_Registry::set('my_db', $db);
$table = new MyTable( array('db'=>'my_db') );
// alternatively:
Zend_Db_Table_Abstract::setDefaultAdapter('my_db');
参见http://framework.zend.com/manual/en/zend.db.table.html#zend.db.table.constructing
关于zend-framework - 在不使用MVC的情况下使用Zend Framework Db表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1526656/