0

我是 Zend 框架的新手。我一直在关注“ZendFramework - 初学者指南”一书。在第 4 章中,他们开始使用 Doctrine。问题是我想在数据库交互中使用 Zend 的内置功能。

我已经在网上搜索并观看了几个 tuts。好吧,我找不到合适的(对我来说)解决方案。

总之,每个人都在使用标准的 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

为什么不在控制器中调用公共 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 回答
1

您应该在 application.ini 文件中为模型和视图进行配置

resources.modules = 

resources.view[] =

你也应该在你的模块中创建引导文件

class Content_Bootstrap extends Zend_Application_Module_Bootstrap {
 }

此外,您应该确保您的 modulel 文件夹的名称是小写字母“内容”..

完成这些配置后,您将能够在控制器中调用模型...

于 2012-05-21T06:00:46.463 回答