我是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看到并使用我的模型?
答案 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”..
完成这些配置后,您将能够在控制器内调用模型...