Zend Framework有多个架构/数据库?

时间:2009-01-11 01:08:57

标签: php zend-framework zend-db-table

我有一些我已定义的表格,如下例所示:

class TableA extends Zend_Db_Table_Abstract
{
    protected $_schema          = 'schema1';
    protected $_name            = 'tablea';
}

class TableB extends Zend_Db_Table_Abstract
{
    protected $_schema          = 'schema2';
    protected $_name            = 'tableb';
}

这似乎可以完美地使用一个默认的Db适配器(因为这两个模式位于同一台服务器上)。

这样的代码有效:

$tableA = new TableA();
$select = $tableA->select();
// $select->__toString() outputs: SELECT * FROM `schema1`.`tablea`

但是,当我尝试将任何Zend Framework表关系函数(即:findDependantRowset()或findManyToManyRowset())使用相同的模型时,查询尝试使用默认适配器中的模式执行,并且不使用在模型类中定义的适当模式。

这是一个错误吗?如何强制ZF使用我在表类中定义的模式而不是默认Db适配器中定义的模式?

2 个答案:

答案 0 :(得分:1)

我认为这与此错误有关: http://framework.zend.com/issues/browse/ZF-1838

它已在上游修复,应在下一版本中提供。

答案 1 :(得分:-1)

我认为你可以使用数据库视图表来合并来自2个模式的数据,然后使用Zend Framework从该表中获取数据。