这个问题是在询问如何从模型中获取 Zend\Db\Adapter 实例。在 Zend Framework 2 中,可以使用 Zend\Db\Adapter\AdapterInterface 接口来连接数据库。以下是一些获取 Zend\Db\Adapter 实例的方法:
在 Service Manager 中注册 Zend\Db\Adapter\AdapterInterface 接口,然后可以使用 getServiceConfig() 方法获取 AdapterInterface 服务的配置,最后使用 getAdapter() 方法获取 Zend\Db\Adapter 实例。
// Module.php
public function getServiceConfig()
{
return array(
'factories' => array(
'Zend\Db\Adapter\AdapterInterface' => function($sm) {
$adapter = new Adapter($sm);
$adapter->setDbTableGateway($sm->get('Zend\Db\Adapter\DbTableGateway'));
return $adapter;
},
),
);
}
在 Model 中通过构造函数来实例化 Zend\Db\Adapter\AdapterInterface 接口,然后使用它的方法来获取 Zend\Db\Adapter 实例。
// Model.php
public function __construct(Adapter $adapter)
{
$this->adapter = $adapter;
}
在 Service Manager 中注册 Zend\Db\Adapter\Platform\Sqlserver 接口,然后可以使用 getServiceConfig() 方法获取 Platform\Sqlserver 服务的配置,最后使用 getAdapter() 方法获取 Zend\Db\Adapter\Platform\Sqlserver 实例。
// Module.php
public function getServiceConfig()
{
return array(
'factories' => array(
'Zend\Db\Adapter\Platform\Sqlserver' => function($sm) {
$adapter = new Platform\Sqlserver($sm);
$adapter->setDbTableGateway($sm->get('Zend\Db\Adapter\DbTableGateway'));
return $adapter;
},
),
);
}
以上是一些获取 Zend\Db\Adapter 实例的方法,可以根据需要选择适合自己的方法。
领取专属 10元无门槛券
手把手带您无忧上云