Zend_Frameworkに奇妙な問題がありました。デフォルト以外のモジュールからフォームやモデルを読み込むことはできません。ZFがモデルとフォームをモジュールから自動ロードしない
私は(ユーザーモジュールで)私のコントローラで次のコード行を持って
$myAccountModel = new User_Model_MyAccount();
しかし私が得るすべては、私は、ファイルのパスとクラス名をチェックして、エラー
Fatal error: Class 'User_Model_MyAccount' not found in F:\My Webs\freedate\application\modules\user\controllers\MyAccountController.php on line 13
ですすべてが正しいです、私はこのプロジェクトのセットアップを私が過去に行った他のZFプロジェクトと似ていますが、唯一の違いはLAMPサーバーではなくWAMPサーバー上にあることです。
デフォルトのモジュールからモデルまたはフォームを読み込もうとすると、これらのコード行がうまくロードされず、エラーは発生せず、クラスも正常に読み込まれます。誰かがここで何が起こっているかのよういくつかの光を当てることができれば、私は今、レンガの壁を直撃しているよう
$loginForm = new Form_Login();
$loginModel = new Model_Login();
それが最も参考になります!
私はZF 1.11.11 btwを使用しています。
感謝
ギャリー
[EDIT]
私はエラーが表示されなくなり、以下の行を追加する場合、これは間違いなくZFオートローダとprobelmです。私はapplication.iniで
require_once(APPLICATION_PATH . '/modules/user/models/MyAccount.php');
私は
; modules
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] =
を持っており、私のbootstrap.phpの中で私が
/** * Initialize autoloader
* @return Zend_Loader_Autoloader
*/
protected function _initAutoload() {
return Zend_Loader_Autoloader::getInstance();
}
/** * Initialize module autoloader
* @return Zend_Application_Module_Autoloader
*/
protected function _initModuleAutoload() {
$modelLoader = new Zend_Application_Module_Autoloader(array(
'namespace' => '',
'basePath' => APPLICATION_PATH . '/modules/default'));
return $modelLoader;
}
を参照してください、私はモジュールへのブートストラップファイルを追加するのを忘れ。あなたの救世主に感謝します。 – Garry
ブートストラップから_initAutoload()を削除できましたが、_initModuleAutoload()ではなく、ACLファイル(致命的なエラー:Class 'Model_FreedateAcl'が見つかりません)が見つからなかったため、アプリ全体が削除されました。 – Garry
これを防ぐには、application.iniファイルに 'appnamespace'を設定し、モジュールの一部ではないすべてのクラスに接頭辞を付ける必要があります。そのため、' Model_FreedateAcl'ではなく 'Application_Model_FreedateAcl'となるかもしれません。あるいは、あなたのように名前空間のないローダを設定することもできます。 – drew010