현재 AbstractTableGateway를 사용하는 Db 모델이 있고 모든 select/insert/update/delete 쿼리가 제대로 작동합니다. 그러나 이제는 MasterSlaveFeature를 추가하고 싶습니다.이 작업을 수행하는 방법에 대해서는 약간 혼란 스럽습니다. 문서는 정확히 좋은 예를 제공하지 않습니다MasterSlaveFeature How-To
http://zf2.readthedocs.org/en/latest/modules/zend.db.table-gateway.html#tablegateway-features
나는 현재이 설정이:
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();
}
} 나는 두 개의 어댑터 $ 어댑터와 $ 슬레이브를 통과하고
, 각 하나는 비어 있고 다른 하나는 실제로 데이터를 가지고 있다는 점을 제외하면 같은 테이블을가집니다. 내가 가지고있는 문서를 바탕으로 작동해야하지만, 나는 여기서 뭔가를 놓치고있는 것처럼 느껴진다. 그러나 무엇을 모른다.
은 $ 어댑터는 데이터가 마스터 데이터베이스 은 $ 노예가 나는 현재에 데이터가없는합니다 ($ 슬레이브에서 데이터를 받아 내 SELECTS 싶습니다
데이터가없는 슬레이브 데이터베이스입니다) 및 삽입/업데이트/삭제는 $ 어댑터로 가야합니다.
누군가 나를 알아낼 수 있습니까? 고마워요