0

だから私はサンプルデータベースプロジェクトに取り組んでいます。LoginController.php、Facultyデータベース、およびログインページ(phtml)があります。

エラー致命的なエラーが発生します:クラス'Faculty_DB'が/usr/local/zend/apache2/htdocs/InternProject1/application/controllers/LoginController.phpの25行目に見つかりません

LoginController.phpには、次のものがあります(さらにいくつか)。

public function indexAction()
{
    $login = new Form_Login();
    //$this->view->login = $login; 

    $request = $this->getRequest();
    if($request->isPost())
    {
        $data = $request->getPost();
        //$this->isValid(
        if($this->getRequest()->getPost())
        {
            $username = $request->getParam('username');
            $password = $request->getParam('password');
            // echo " What you entered is: $username and $password";
//line 24       
            $faculty = new Faculty_DB();
//then conditions for validation.

この参照

class Faculty_DB extends Zend_Db_Table_Abstract

これはapplication/models/ディレクトリにあります

Bootstrap.phpに次のものがあります

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{

    protected function _initAutoload()
    {
        $autoLoader = Zend_Loader_Autoloader::getInstance();
        $autoLoader->registerNamespace(array('App_'));
        $resourceLoader = new Zend_Loader_Autoloader_Resource(array(
            'basePath'  => APPLICATION_PATH,
            'namespace' => '',
            'resourceTypes'     =>
                array('form'=>
                    array('path'        => 'forms/',
                        'namespace'     => 'Form_'
                    ),
                ),
            ));
        return $autoLoader;         
    }
}

これを修正する方法についての手がかりはありますか?私は次のことを試しました:

 protected function _initResourceAutoloader()
 {
     $autoloader = new Zend_Loader_Autoloader_Resource(array(
         'basePath'  => APPLICATION_PATH,
         'namespace' => 'Application',
     ));

     $autoloader->addResourceType( 'model', 'models', 'Model');
     return $autoloader;
 }

しかし、それを行うと、Login_Formが見つからないことがわかります。

4

1 に答える 1

3

アプリケーションの名前空間がApplicationであるとすると、次のことを試してください。

  • 教員のDBクラスをapplication/models/Faculty.php
  • それに名前を付けますApplication_Model_Faculty
  • からそれを拡張しますApplication_Model_DbTable_Faculty
  • DbTableクラスをapplication/models/DbTable/Faculty.php

を使用しているので、オートローダーと、、などのZend_Application特別なプレフィックスの設定が自動的に行われるため、ブートストラップからとを安全に削除できます。Form_Model_Plugin__initAutoload_initResourceAutoloader

于 2012-07-31T22:19:52.980 に答える