SuiteCRM中的控制器
一个系统中控制器是相当重要的,它是实现程序逻辑的关键。
SuiteCRM遵循MVC模式,因此也具有控制器的概念。我们先不管这个系统中的控制器代码该如何编写,最先要做的,是要知道控制器在哪!!!
SuiteCRM系统在使用控制器的时候,首先会查找 custom/module/<模块名>/controller.php这个文件。如果未找到此文件,则会继续查找module/<模块名>/controller.php这个文件。要是这两个文件都没有找到,则将使用默认控制器include/MVC/Controller/SugarController.php。
这样我们就知道该从何处下手了,除去默认控制器,还是会有两个控制器文件,首先,我们要了解这两个控制器的区别。
一、custom/module/<模块名>/controller.php
这个地方的控制器,官网说是作用在 预先存在的模块,文件咱们已经知道怎样去建了,那我们的文件内容如何写,类名该如何定义了,下面直接上代码。
<?php
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
class Custom<模块名>Controller extends SugarController
{public function action_index(){}
}
这里值得注意的是,类名的定义与我们平时用的框架的类名定义是不一样,比如laravel,类名与文件名得是一样的,但这里不是。还有要注意的是方法名的定义,要加上action_作为前缀,有点类似于yii2。
二、module/<模块名>/controller.php
这里的就是 定制模块的控制器,就是在后台导入系统中的模块,就可以把对应的控制器写在这里。
这里的控制器内容,和custom下的控制器是有一点点不同的。
<?php
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
class <模块名>Controller extends SugarController
{public function action_index(){}
}
这里的类名比上一个少了个Custom,方法名的定义是一样的,并且两种控制器都要继承SugarController这个基类。
访问控制器方法的url:<你的域名>/index.php?module=<模块名>&action=<方法名>
到这里,控制器的定义就完成了,下面就可以为所欲为了。
SuiteCRM中的控制器相关推荐
- iOS开发中标签控制器的使用——UITabBarController
iOS开发中标签控制器的使用--UITabBarController 一.引言 与导航控制器相类似,标签控制器也是用于管理视图控制器的一个UI控件,在其内部封装了一个标签栏,与导航不同的是,导航的管理 ...
- legend3---laravel中获取控制器名称和方法名称
legend3---laravel中获取控制器名称和方法名称 一.总结 一句话总结: \Route::current()->getActionName();会有完整的当前控制器名和方法名 pub ...
- cshtml中引用css_ASP.NET CoreMVC 中的控制器
Controller in ASP.NET Core MVC 在本节中,我们将讨论 Controller 是什么以及它在 ASP.NET Core MVC 中的作用. Fiddler 需要大家提前装一 ...
- 视图中获取控制器中数据的方式
在视图中获取控制器中数据的方式有两种: 一种是在控制器的操作中渲染视图时候分配模板数据,这种方式叫推送. 另外一种是在视图中手动获取控制器中的数据,包括控制器中的属性和方法及控制器id,通过$this ...
- java中的控制器_SpringMVC基础(一)_控制器
Spring MVC Spring MVC 基于模型-视图-控制器(Model-View-Controller)模式实现,它能够帮你构建灵活和松耦合的应用程序. 1.Spring MVC的请求追踪 每 ...
- 汽车电子电气架构设计中的控制器融合分析
本文由叶日良,姜立标联合创作 摘要 随着汽车智能化.网联化的发展,整车电器功能愈加丰富,对电子电气架构的设计提出了更高的要求.文章综述了汽车电子电气架构的开发流程和发展趋势,并为架构设计中的控制器融合 ...
- php中mvc控制器作用,理解PHP中的MVC编程之控制器
简单来讲,控制器的作用就是接受请求.它使用获取的方法,在这里是通过URI,载入一个功能模块来刷新或者提交一个表述层.控制器将使用$_GET自动全局变量来判断载入哪一个模块. 一个请求的例子,看起来像这 ...
- .ne中的控制器循环出来的数据如何显示在视图上_Web程序设计-ASP.NET MVC4数据库操作实例...
ASP.NET MVC4数据库操作实例 之前文章介绍了MVC4与Pure框架结合进行的网页设计过程中如何定义控制器.方法.模型.视图等.并使用实例进行了简单说明.本文将在此基础上进一步说明如何使用MV ...
- iOS 中导航控制器全屏向右滑动返回上一界面
在iOS中,导航控制器默认就自带了侧滑功能,当用户在界面的左边(左边边缘)滑动的时候,才会有侧滑功能.但是我们往往在开发的过程中需要在屏幕的任意位置滑动,都需要返回到上一个界面. 多说无意,直接看代码 ...
- java调用接口失败重试,httpclient接口测试中重试控制器设置
本人在使用httpclient做接口测试的过程中,之前并没有考虑到请求失败自动重试的情况,但有时又需要在发生某些错误的时候重试,比如超时,比如响应频繁被拒绝等等,在看过官方的示例后,自己写了一个自动重 ...
最新文章
- 【搜索专题】DFS之连通性模型与搜索顺序
- php 匹配一次,PHP Regex匹配最后一次出现的字符串
- [unity3d]导出安卓版设置
- 利用脚本批量添加域用户账户
- WriteableBitmap process summary
- 关于SharePoint解决方案开发模型的凌乱文章…
- oracle 11g rac impdp,RAC创建DBlink并使用impdp抽取源库数据
- 密码密文 android,Android开发之密码明文密文切换显示
- 旅行商问题近似解——NP完全问题
- FPGA_电机控制(Verilog)
- 在网易游戏的第三年——Jerish的2021总结
- Nessus下载失败问题解决
- ps链接图层的使用方法和快捷键,ps图层链接怎么做的
- 电脑怎么压缩jpg图片?如何压缩照片并保持清晰?
- 用join实现交集,并集,差集,补集的效果
- 哪些窗体置顶得程序是怎么实现得?
- 完全卸载Android Studio的方法
- SAP BW/4 HANA基础学习(二)
- Android Studio 编译时报文件不能删除,编译失败
- java.sql.time 格式_java.sql.Date,java.sql.Time和java.sql.Timestamp什么区别