0

Zend フレームワークは初めてです。私は本「ZendFramework - A Beginners Guide」をフォローしています。第 4 章では、Doctrine の使用を開始します。問題は、Zend の組み込み機能をデータベースとの対話で使用したいということです。

私はウェブを検索し、いくつかのツッツを見ました。まあ、私は正しい(私にとって)解決策を見つけることができませんでした。

あらゆる場面で、誰もが標準的な Zend の構造を使用しています。モジュールを統合したいと思います。したがって、次のようなファイル構造があります。

application
   /modules
      /moduleName
          /controllers
          /models
          /views

次のようなコントローラーとビューの application.ini でルートを設定しました。

; /articles/* route
resources.router.routes.articles.route = /articles
resources.router.routes.articles.defaults.module = content
resources.router.routes.articles.defaults.controller = articles
resources.router.routes.articles.defaults.action = index  

ここで、モデルをロードしようとしたので、Mysql のテーブルとのやり取りを開始しました。

という名前のコントローラーArticlesController.phpでクラスを作成しContent_ArticlesController、そこには次のものがあります。

  public function indexAction()
  {

      $model = new Content_ArticlesModel();
      $this->view->modelHi = $model->there;
      $this->view->hello = 'Hello there';

  }

ご想像のとおり、Content_ArticlesModel は Zend_Db_Table_Abstract クラスを拡張した私のクラスです。そこには、コントローラーから呼び出してモデルからビューにデータを渡すパブリック関数 modelHi() があります。

誰かがこれを正しい方法で行うのを手伝ってもらえますか? モジュールのモデルを正しくロードするにはどうすればよいですか? いくつかの例に基づいて、データベースの操作に関する良い記事をリンクできます。

編集:わかりました、コントローラーでこの本当にスタディップエラーが発生しましたが、問題ありません。とにかく問題は、Zend がコントローラーをロードすると、次のように表示されることです。Fatal error: Class 'Content_ArticlesModel' not found in S:\xampp\htdocs\testsite\application\modules\content\controllers\ArticlesController.php on line 12

問題は、Zend がコントローラーから到達しようとしているモジュールのモデルを見つけられない/どこにあるかわからないことです。

Zend に自分のモデルを認識させ、使用させるにはどうすればよいですか?

4

2 に答える 2

1

モデルとビューのapplication.iniファイルで構成を行う必要があります

resources.modules = 

resources.view[] =

また、モジュール内にブートストラップ ファイルを作成する必要があります。

class Content_Bootstrap extends Zend_Application_Module_Bootstrap {
 }

また、modulel フォルダーの名前が小文字の「content」であることを確認する必要があります。

これらの構成を行った後、コントローラー内でモデルを呼び出すことができます...

于 2012-05-21T06:00:46.463 に答える
1

コントローラーで public modelHi() メソッドを呼び出すだけではどうですか

更新: モジュール名が 'content' の場合、モデルが配置されている必要があります

application/modules/content/models/ArticlesModel.php

次に、次のことを行います

public function indexAction()
  {

      $model = new Content_Model_ArticlesModel(); //name of class
      $this->view->modelHi = $model->modelHi();
      $this->view->hello = 'Hello there';

  }
于 2012-05-21T03:58:01.937 に答える