我可以将数据库适配器设置为在 Zend_Db_Table_Abstract 类中永久使用吗?
我的站点使用了 2 个数据库,其中包括一个与其他站点特定数据库相关的中央用户数据库。
有时调用 new User(array('db'=>'adapter1')); 就足够了(但从来不方便); 但其他时候,例如在声明不同数据库上的表之间的关系时,则无法执行此操作。
有谁知道在 Zend_Db_Table_Abstract 类中指定要使用哪个数据库适配器的方法?
谢谢!
I have 2 databases that my site uses including a central user database that relates to other site-specific databases.
Sometimes it is adequate to call new User(array('db'=>'adapter1'));
(but never convenient); other times, though, such as when declaring relationships between tables on different databases, there is no way to do this.
Does anyone know a way to specify which database adapter to use from within the Zend_Db_Table_Abstract class?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
回到这个问题已经很晚了,但是这里的答案都没有对我有用。 我的一些数据库模型需要使用“tdb”,并且将以下代码添加到每个类中以自动发生:
我感谢大家一路以来的建议!
Getting back to this pretty late, but none of the answers here quite did it for me. A select few of my database models needed to use 'tdb' and the following code was added to each of those classes to have that happen automatically:
I thank you all for your suggestions along the way!
Zend_Db_Table_Abstract 提供了一个静态方法来设置默认数据库适配器。 执行以下操作:
现在,所有 Table 对象都将默认使用您的适配器。
注意:在线文档有时并没有明确说明这一点,因此第二个最佳检查位置是在此处的 API 中: http://framework.zend.com/apidoc/core/
Zend_Db_Table_Abstract provides a static method to set the default database adapter. Do this as follows:
Now, all your Table objects will use your adapter by default.
Note: the online docs sometimes don't make this obvious, so your second best place to check is in the API here: http://framework.zend.com/apidoc/core/
您可以在构造函数中将类变量 $_db 设置为正确的适配器。
假设适配器对象可以在构造函数中引用。 这似乎不太便携,但我相信它会起作用。
You could set the class variable $_db to the correct adapter in the constructor.
Assuming the adapter object can be referenced in the constructor. That doesn't seem to portable, but I believe it would work.
init 函数可以使用,它在
Zend_Db_Adapter_Abstract 中没有使用,
可以在您的类中使用来设置需要完成的任何操作。_setAdapter
接受命名注册表项的字符串。The init function can be used, it is not used in
Zend_Db_Adapter_Abstract,
can be used in your class to setup whatever needs to be done._setAdapter
accepts a string naming a Registry Key.生产中特定不同数据库的示例。
您可以在这里应用一些逻辑。
Example for specific different DB on production.
You can apply some logic here.