<root>/administrator/controller.php
<root>/administrator/controllers/users.php
<root>/administrator/controllers/books.php
<root>/administrator/controllers/relation.php
Joomla文档中文翻译 - MVC组件开发:后台界面 - MVC互动模式 - 控制器
在前面一篇文档中,我们通过一个图书馆借阅管理的例子来了解了MVC组件前后台运作模式;今天继续,来看看组件管理后台的控制器(controller)。
参考前一篇文档最后的列表示意,对应“用户”、“书籍”和“借阅关系”这三个不同的后台管理视图,我们需要在主控制器下创建三个子控制器;控制器的文件结构如下:
主控制器controller.php下面的三个子控制器分别对应着“用户”、“书籍”和“借阅关系”这三个后台管理;每个子控制器会响应各自的操作请求,通过同名的模型(model)获取所需的数据,最终通过视图将数据内容输出。
对于控制器,通常需要注意两个不同的任务类型:
- 激活任务:例如在管理后台勾选某些内容项目并进行编辑。
- 结果任务:例如对之前编辑过的数据进行保存。
对应这两种任务类型的代码模式如下:
function <activating task>() // <-- edit, add, delete
{
JRequest::setVar( 'view', '[<componentname> | users | books | relation ]' );
JRequest::setVar( 'layout', 'default' ); // <-- The default form is named here but in complex
// views multiple layouts might be needed.
parent::display();
}
function <resulting task>() // <-- save, remove
{
$model = $this->getModel('[<componentname> | users | books | relation ]');
if(!$model->action() ) { // <-- action could be delete() or store()
$msg = JText::_( 'Error: Could not perform action' );
} else {
$msg = JText::_( 'Action executed' );
}
$this->setRedirect( 'index.php?option=<componentname>', $msg );
}
在结果任务被完成之后,我们会被带回到该组件的默认视图页面,即入口点。
Joomla MVC组件管理后台的控制器方面的简介呢,就到这里;接下来,没什么悬念的,我们将对模型及视图方面的知识做一做了解。
译者:Viiiix7210
如需转载,请注明官方英文文档及本人译文的出处,谢谢。查看官方英文文档: Developing a Model-View-Controller Component - Part 4 - Creating an Administrator Interface
感觉自己脑袋已经青了,一天天这些东西搞下来有点不会说话了;自己觉得最近的内容太抽象了,东西的示范性也不是很强,或是说无论原语言的表达还是知识本身,自己还没能很透彻的掌握;尽力而为吧,既然开头了我就不大想中途夭折...哪位朋友如果看着不顺眼,有什么意见建议或指正,请尽管向我拍来。
| < Prev | Next > |
|---|
