0

我目前正在开发一个基于 Zend 框架 1.12 的项目。我使用不同的模块来尽可能地保持分离。我的数据存储在 mysql 数据库中,因此我在项目中设置了一些 db 表模型。表之间的关系应该由 Zend 框架 Zend_Db_Table 关系处理。我在我的课程中添加了必要的代码:

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到用户模块并相应地重命名它时,一切正常。所以在我看来,它似乎与在不同模块中定义的类有关。我在研究过程中发现的所有文章都无法回答这个问题。也许我在主要Bootstrap.phpapplication.ini.

4

1 回答 1

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

于 2013-04-15T07:40:40.840 回答