Zend framework2 MasterSlaveFeature如何
目前,我的Db模型使用AbstractTableGateway,我所有的选择/插入/更新/删除查询都工作正常。但是现在我想添加MasterSlaveFeature,我有点不明白该怎么做。文档并没有给出一个很好的例子: 我目前有以下设置:Zend framework2 MasterSlaveFeature如何,zend-framework2,zend-db,zend-db-table,Zend Framework2,Zend Db,Zend Db Table,目前,我的Db模型使用AbstractTableGateway,我所有的选择/插入/更新/删除查询都工作正常。但是现在我想添加MasterSlaveFeature,我有点不明白该怎么做。文档并没有给出一个很好的例子: 我目前有以下设置: namespace Login\Model; use Zend\Db\TableGateway\Feature\MasterSlaveFeature; use Zend\Db\TableGateway\Feature\FeatureSet; use Zend
namespace Login\Model;
use Zend\Db\TableGateway\Feature\MasterSlaveFeature;
use Zend\Db\TableGateway\Feature\FeatureSet;
use Zend\Db\TableGateway\AbstractTableGateway;
use Zend\Db\Sql\Select;
use Zend\Db\Sql\Expression;
class Passport extends AbstractTableGateway
{
public function __construct($adapter, $slave)
{
$this->table = 'passport';
$this->adapter = $adapter;
$this->featureSet = new FeatureSet();
$this->featureSet->addFeature(new MasterSlaveFeature($slave));
$this->initialize();
}
public function Profile($employeeid)
{
$result = $this->select(function (Select $select) use ($employeeid) {
$select
->columns(array(
'count' => new Expression('COUNT(*)'),
'employeeid',
'passwd',
'group',
'name',
'status',
'timezone',
'timeformat',
'locale',
'max_search'
))
->where($this->adapter->getPlatform()->quoteIdentifier('employeeid') . ' = ' . $this->adapter->getPlatform()->quoteValue($employeeid))
->limit(1);
});
return $result->current();
}
}
我正在传递两个适配器$adapter和$slave,它们都有相同的表,除了一个是空的,另一个实际上有数据。根据文档,我所拥有的应该是有效的,但我觉得我遗漏了一些东西,但不知道是什么
$adapter是包含数据的主数据库
$slave是没有数据的从属数据库
我希望选择从$slave(当前没有数据)获取数据,插入/更新/删除应转到$adapter
有人能帮我弄清楚吗?谢谢更新:从ZF 2.0.5开始,有一个bug。配置正确 更新:看起来这应该在2.1版本中解决 更新:我现在可以确认此问题已解决,并在2.0.7和2.1中工作