Php Zend DbTable从其他模块的引用表中获取行
我目前正在从事一个基于Zend framework 1.12的项目。我使用不同的模块尽可能地将事情分开。我的数据存储在mysql数据库中,所以我在项目中设置了一些db表模型。表之间的关系应由Zend框架Zend_Db_表关系处理。我在我的类中添加了必要的代码:Php Zend DbTable从其他模块的引用表中获取行,php,mysql,zend-framework,zend-db-table,relationships,Php,Mysql,Zend Framework,Zend Db Table,Relationships,我目前正在从事一个基于Zend framework 1.12的项目。我使用不同的模块尽可能地将事情分开。我的数据存储在mysql数据库中,所以我在项目中设置了一些db表模型。表之间的关系应由Zend框架Zend_Db_表关系处理。我在我的类中添加了必要的代码: class User_Model_DbTable_Users extends Zend_Db_Table_Abstract { protected $_name = 'users'; protected $_primary
class User_Model_DbTable_Users extends Zend_Db_Table_Abstract
{
protected $_name = 'users';
protected $_primary = 'user_id';
protected $_dependentTables = array('Diagnostics_Model_DbTable_Diagnostics');
}
User\u Model\u DbTable\u Users
是父类,在Users
模块中定义<代码>诊断\u模型\u数据库\u诊断是引用的类,在诊断
模块中定义
class Diagnostics_Model_DbTable_Diagnostics extends Zend_Db_Table_Abstract
{
protected $_name = 'diagnostics';
protected $_primary = 'diagnostic_id';
protected $_referenceMap = array(
'User' => array(
'columns' => array('diagnostic_user'),
'refTableClass' => 'User_Model_DbTable_Users',
'refColumns' => array('user_id')
)
);
}
当我现在尝试使用为用户行加载引用的诊断时
$row->findDiagnostics_Model_DbTable_Diagnostics()代码>
我得到一个错误:
文件“Diagnostics\Model\DbTable\Diagnostics.php”不存在或在中找不到类“Diagnostics\u Model\u DbTable\u Diagnostics”
文件
当我将类Diagnostics\u Model\u DbTable\u Diagnostics
移动到用户模块中并相应地重命名它时,一切正常。所以在我看来,它似乎与在不同模块中定义的类有关。我在研究中发现的所有文章都不能回答这个问题。
可能我在主Bootstrap.php
或application.ini
中缺少了一些东西,您需要引导模块。好消息:
我使用一个简单的类,如下所示:
class Diagnostics_Bootstrap extends Zend_Application_Module_Bootstrap {
...
}
不要启动您不需要的模块,我建议阅读您是否在application.ini中声明了诊断名称空间?不,我没有,也没有必要。见下文。不管怎样,谢谢。我需要检查一下。当使用zf创建模块时,引导类不是自动创建的吗?不确定,我没有使用工具zf工具不会自动创建bootstrap.php。在我手动创建之后,一切都很好!谢谢