代码之家  ›  专栏  ›  技术社区  ›  leek Bharat Chodvadiya

Zend框架具有多个架构/数据库?

  •  1
  • leek Bharat Chodvadiya  · 技术社区  · 15 年前

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

    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框架表关系函数(即findDependsRowset()或findManyToManyRowset())时,查询尝试使用默认适配器中的架构执行,并且不使用模型类中定义的适当架构。

    这是虫子吗?如何强制ZF使用我在表类中定义的模式,而不是在默认DB适配器中定义为默认模式的模式?

    2 回复  |  直到 11 年前
        1
  •  1
  •   stunti    15 年前

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

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

        2
  •  -1
  •   farzad    15 年前

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