2012-12-02 23 views
4

我目前有我的Db模型使用AbstractTableGateway和我所有的選擇/插入/更新/刪除查詢工作得很好。但是現在我想添加MasterSlaveFeature,對於如何做到這一點我有點困惑。文檔不正是給一個很好的例子:MasterSlaveFeature如何對

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(); 
} 

}

我傳遞兩個適配器$適配器和$奴隸,每個有相同的表,除了一個是空的,另一個實際上有數據。基於文件我應該工作,但我覺得我在這裏失去了一些東西,但不知道什麼。

的$適配器是具有數據的主數據庫 的$奴隸是沒有數據

我想我的選擇將採取從$從數據(目前沒有數據從數據庫)和插入/更新/刪除應該轉到$適配器。

有人可以幫我解決這個問題嗎?謝謝

回答

1

更新:自ZF 2.0.5以來有一個錯誤。配置是正確的。

UPDATE:看起來這應該在2.1版本中得到解決

更新:我現在可以證實這一點得到解決,在2.0.7和2.1

工作