在Zend Framework for Model中设置Application.ini

时间:2012-05-20 23:00:45

标签: zend-framework routes zend-db zend-db-table

我是Zend Framework的新手。我一直在关注“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看到并使用我的模型?

2 个答案:

答案 0 :(得分:1)

为什么不在控制器中调用公共modelHi()方法

更新: 如果您的模块名称是“内容”,那么您的模型应该位于

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';

  }

答案 1 :(得分:1)

您应该在application.ini文件中为modeule和view

进行配置
resources.modules = 

resources.view[] =

此外,您应该在模块中制作引导程序文件

class Content_Bootstrap extends Zend_Application_Module_Bootstrap {
 }

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

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