使用Zend_Db_Table管理多个特定于用户的dbadapter

时间:2011-08-12 21:03:17

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

关于如何将Zend_Db_Table与用户特定的数据库适配器一起使用,我有一个非常快速的问题。

我有一个包含所有应用程序数据的元表的应用程序,例如用户登录,查找表等。每个客户端都拥有自己的数据库。

我在模型文件夹中的Zend Project中有一个名为meta的文件夹。用于应用程序的所有Zend_Db_Table都存储在此处。与客户端数据库交互的所有Zend_Db_Table对象都在models文件夹中。

  /application
  |
  |models/
  |- UserTable.php
  |- AnotherTable.php
  |- meta/
  |- - LookupTable1.php
  |- - LoginTable.php

将包含客户端数据库连接的用户dbadapter注入到位于modles文件夹但不在meta子文件夹中的所有Zend_Db_Table对象的最佳方法是什么?

元表需要在整个应用程序中可访问,因此更改Zend_Registry中的默认适配器将不起作用。

有什么建议吗?

谢谢,

捐赠

2 个答案:

答案 0 :(得分:1)

$userTable = new Model_DbTable_Users(array('db'=>$dbadapter));

另一种方式

$userTable = new Model_DbTable_Users();
$userTable->setDefaultAdapter($dbadapter);

答案 1 :(得分:0)

你可能有两个不同的Zend_Db_Table子类,并为每个子类设置不同的Db适配器。然后你的模型将一个和你的元表子类化,另一个?