zend-framework2 – MasterSlaveFeature方法
发布时间:2020-12-13 22:46:29 所属栏目:PHP教程 来源:网络整理
导读:我目前使用AbstractTableGateway拥有我的Db模型,所有我的select / insert / update / delete查询都运行正常.但现在我想添加MasterSlaveFeature,我对如何做到这一点感到有点困惑.文档并没有给出一个很好的例子: http://zf2.readthedocs.org/en/latest/module
我目前使用AbstractTableGateway拥有我的Db模型,所有我的select / insert / update / delete查询都运行正常.但现在我想添加MasterSlaveFeature,我对如何做到这一点感到有点困惑.文档并没有给出一个很好的例子:
http://zf2.readthedocs.org/en/latest/modules/zend.db.table-gateway.html#tablegateway-features 我目前有这个设置: namespace LoginModel; use ZendDbTableGatewayFeatureMasterSlaveFeature; use ZendDbTableGatewayFeatureFeatureSet; use ZendDbTableGatewayAbstractTableGateway; use ZendDbSqlSelect; use ZendDbSqlExpression; 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(); } } 我传递两个Adapters $adapter和$slave,每个都有相同的表,除了一个是空的,另一个实际上有数据.根据文档我应该有什么工作,但我觉得我在这里遗漏了一些东西,但不知道是什么. $adapter是具有数据的master数据库 我希望我的SELECTS从$slave(当前没有数据)获取数据,Insert / Update / Delete应该转到$adapter. 有人可以帮我解决这个问题吗?谢谢 解决方法
更新:从ZF 2.0.5开始,有一个错误.配置是正确的.
更新:看起来应该在2.1版本中解决 更新:我现在可以确认这已经解决并在2.0.7和2.1中工作 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |