1

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

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 适配器,这似乎可以完美地工作(因为 2 个模式在同一台服务器上)。

像这样的代码有效:

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

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

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

4

2 回答 2

1

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

它已在上游修复,应该在下一个版本中可用。

于 2009-01-15T02:15:13.930 回答
-1

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

于 2009-01-13T05:34:10.253 回答