我目前正在开发一个基于Zend framework 1.12的项目。我使用不同的模块来尽可能保持分离。我的数据存储在mysql数据库中,因此我在项目中设置了一些db表模型。表之间的关系应由Zend框架Zend_Db_Table Relationships处理。我在课程中添加了必要的代码:
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_Model_DbTable_Users
是父类,在Users
模块中定义。 Diagnostics_Model_DbTable_Diagnostics
是引用的类,在Diagnostics
模块中定义。
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_Model_DbTable_Diagnostics”类中找到 文件
当我将类Diagnostics_Model_DbTable_Diagnostics
移动到Users模块并相应地重命名时,everthing工作正常。所以在我看来好像它与不同模块中定义的类有关。我在研究期间发现的所有文章都没有给我答案。
也许我遗漏了主Bootstrap.php
或application.ini
中的内容。
答案 0 :(得分:0)
您需要引导模块。好消息:http://akrabat.com/zend-framework/bootstrapping-modules-in-zf-1-8/
我使用如下的简单类:
class Diagnostics_Bootstrap extends Zend_Application_Module_Bootstrap {
...
}
请勿引导您不需要的模块,建议您阅读http://www.mwop.net/blog/234-Module-Bootstraps-in-Zend-Framework-Dos-and-Donts.html