0

default、、の3つのモジュールを備えたアプリケーションがありdisciplinesますplans。このdisciplinesモジュールで正常に動作するdbtableがありますが、plans内部のモジュールでdbtableを使用しplans_dbtableたい場合は、

43行目のC:\ xampp \ htdocs \ proiect_mps \ application \ modules \ plans \ models \ DbTable\Plans.phpにクラス'Disciplines_Model_DbTable_Disciplines'が見つかりません。

Require_onceとincludeは問題を解決しません。Disciplines_BoostrapクラスとPlans_Bootstrapクラスを作成しました。しかし、それは機能しません。何か案は?

class Plans_Model_DbTable_Plans extends Zend_Db_Table_Abstract
{
    ...
    public function addPlan(
        $year,
        $name,
        $code,
        $domain,
        $specialization,
        $years)
    {
     
       // Id-ul disciplinei
       $id_discipline = 0;
       $discipline = new Disciplines_Model_DbTable_Disciplines();
       ....
    }
    ...
}
    
4

2 に答える 2

0

あなたは Zend を使用しているので、require_once が最適であるという答えはお勧めしません。これは役立つかもしれません:

ファイル application.ini 内

;Module Configuration
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.moduleControllerDirectoryName = "controllers"

; Enables Modules bootstrap resource plugin, so each module directory has a bootstrap.php file
resources.modules = 1

そしてあなたの BootStrap.php ファイルで

protected function _initFrontController() {
        // The Zend_Front_Controller class implements the Singleton pattern
        $frontController = Zend_Controller_Front::getInstance();

        // look in the modules directory and automatically make modules out of all folders found
        $frontController->addModuleDirectory(APPLICATION_PATH . '/modules');

        // forces the front controller to forward all errors to the default error controller (may already be false by default)
        $frontController->throwExceptions(false);

        return $frontController;
    }

はい、すべてのモジュールに Bootstrap.php が必要です。

    class Disciplines_Bootstrap extends Zend_Application_Module_Bootstrap
{
    /**
     * This file is ABSOLUTELY NECESSARY to get module autoloading to work.
     * Otherwise calls to "$form = new Module_Form_MyForm()" will fail.
     */


}
于 2012-04-05T10:48:24.853 に答える
-1

自分で解決したと思います。私は書かなければならなかった

require_once(APPLICATION_PATH.'/modules/disciplines/models/DbTable/Disciplines.php');

それ以外の

require_once '/proiect_mps/application/modules/disciplines/models/DbTable/Disciplines.php';

これも機能します:

require_once('/../../../disciplines/models/DbTable/Disciplines.php');

私のフォルダ構造のために。

于 2012-04-05T10:45:03.997 に答える