2011-01-15 12 views
-1

this tutorialを使用して、zendアプリケーションでmysqlテーブル(認証)に接続しようとしています。しかし、DbTableのインスタンスを取得することができません。私はアプリケーション内でdirectory structureを変更しました。ZendでMySQLに接続できません

私はこのようなマッパー何か持っている:それはマッパーで$table = $this->getDbTable();を実行すると、それは私に放火犯コンソールで次のエラーを与える

class Model_Authentication_DbTable extends Zend_Db_Table_Abstract { 
    protected $_name = 'Authentication'; 
} 

このようDBTABLE

class Model_Authentication_Mapper { 

    protected $_dbTable; 

    public function setDbTable($dbTable) { 

     if (is_string($dbTable)) { 
      $dbTable = new $dbTable(); 
     } 
     if (!$dbTable instanceof Zend_Db_Table_Abstract) { 
      throw new Exception('Invalid table data gateway provided'); 
     } 
     $this->_dbTable = $dbTable; 
     return $this; 
    } 

    public function getDbTable() { 

     if (null === $this->_dbTable) { 
      $this->setDbTable('Model_Authentication_DbTable'); 
     } 
     return $this->_dbTable; 
    } 

    public function getRecordById($id) { 
    $table = $this->getDbTable(); 
    // Other code here 
    } 

} 

An error occurred Application error Message: No adapter found for Model_Authentication_DbTable 

このDbTableのアダプタを設定するにはどうすればよいですか?

誰でも知っていますか?

おかげ

答えて

0

ソリューションを検索します。私はただのapplication.iniでいくつかの行をコメントアウトし、すべてが働いている:

[production] 
phpSettings.display_startup_errors = 1 
phpSettings.display_errors = 1 
includePaths.library = APPLICATION_PATH "/../library" 
bootstrap.path = APPLICATION_PATH "/Bootstrap.php" 
bootstrap.class = "Bootstrap" 
appnamespace = "Application" 
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" 
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" 
resources.frontController.params.displayExceptions = 1 

;[staging : production] 

;[testing : production] 
;phpSettings.display_startup_errors = 1 
;phpSettings.display_errors = 1 

;[development : production] 
;phpSettings.display_startup_errors = 1 
;phpSettings.display_errors = 1 
;resources.frontController.params.displayExceptions = 1 

resources.db.adapter = "pdo_mysql" 
resources.db.params.host = "localhost" 
resources.db.params.username = "root" 
resources.db.params.password = "" 
resources.db.params.dbname = "bbname" 
resources.db.isDefaultTableAdapter = true 
+2

これらの行はコメントする必要はありません。 db情報を[production]セクションの最後に移動するだけです。以下のセクションでは、前のセクションの設定を継承します。また、開発中は、サーバー構成にSetEnv APPLICATION_ENV開発を追加する必要があるので、エラーが表示されるようにしてください(開発セクションのphpSettings.display_startup_errorsなどは – user570783

+0

@ user570783のものですこの投稿に興味をお持ちいただきありがとうございます。 – Awan

1

あなたはZFツールを使用しようとしたことがありますか?次のコマンドを使用すると、MySQLデータベースのための本番セクションにDBアダプタを作成するのに役立つはずです。

zf.sh configure db-adapter "adapter=PDO_MYSQL&host=localhost&dbname=test&username=testuser&password=testpasswort&charset=utf8" production 

はちょうどあなたがMySQL用PDOドライバがマシンにインストールされていることを確認してください。

関連する問題