`
lesorb
  • 浏览: 124730 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

CakePHP开发之调用控制器方法requestAction

阅读更多

有时候,为了调用上的方便,我们需要使用requestAction。

它是CakePHP提供的,实现了无论当前请求在哪里,都能够任意调用的一个简便方法。这在某种程度上违背了MVC的设计理念,但是,为了追求灵活性,CakePHP在后续版本中一直保留了这个特性,并做出了一定的改进。

经过查看,我得知,requestAction是对象类Object中的一个公有方法,是CakePHP中所有其他类的父类,这便能理解为什么它可以在任意位置被访问到了。

但在使用中,我发现requestAction十分耗费资源,效率极差。

在requestAction中最终返回值为:

$dispatcher->dispatch($url, $params);


类Dispatcher是CakePHP中的主要的负责关联路由分发逻辑控制的类,它的一些参数的设定直接影响着最终的执行方式。

url:将要要请求的路径,Dispatcher从这里转发逻辑
return:是否返回视图
bare:布尔值,在layout之前判断布局器
layout:是否返回布局器


关于return的保守代码:

if (array_key_exists('return', $this->params) && $this->params['return'] == 1) {
			$controller->autoRender = false;
		}


如非需要,我不建议去使用requestAction。
1
0
分享到:
评论

相关推荐

    CakePHP创建验证器

    在CakePHP中创建验证器通常是在模型(Model)层进行的,但本文档中的示例是在控制器(Controller)层直接创建验证器并使用它来进行验证。这种方法适用于简单的表单验证场景,对于更复杂的应用,建议在模型层定义验证规则...

    cakephp学习笔记

    控制器中的动作(Action)对应着特定的URL请求,当请求与控制器的动作匹配时,CakePHP的请求分发器会调用相应动作完成处理。开发者可以创建自定义的控制器并继承自AppController,AppController是所有控制器的基类,...

    CakePHP路由

    2. **作为数字索引数组**:一旦参数被传递给控制器的操作方法,可以通过 `$this->request->params` 或 `$args` 数组来获取它们。 ```php public function index($arg1, $arg2) { // 使用 $arg1 和 $arg2 } ``` ...

    基于Andorid的音乐播放器项目改进版本设计.zip

    基于Andorid的音乐播放器项目改进版本设计实现源码,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。

    uniapp-machine-learning-from-scratch-05.rar

    uniapp-machine-learning-from-scratch-05.rar

    game_patch_1.30.21.13250.pak

    game_patch_1.30.21.13250.pak

    【毕业设计-java】springboot-vue计算机学院校友网源码(完整前后端+mysql+说明文档+LunW).zip

    【毕业设计-java】springboot-vue计算机学院校友网源码(完整前后端+mysql+说明文档+LunW).zip

    机器学习-特征工程算法

    特征变换 特征选择

    吸烟数据集 991张原始图片,平均识别率在88.3% coco json格式标注

    吸烟数据集 991张原始图片,平均识别率在88.3% coco json格式标注

    c++万能头文件picture.h

    c++万能头文件picture.h

    spaceX Ship Flight Test 8

    spaceX 动力学分析

    数据科学_Python手册_在线学习资源_教育辅助_1741398259.zip

    python教程学习

    Uniapp 跨平台开发框架的学习资源汇总与应用指导

    内容概要:本文详细整理了与uniapp有关的一系列学习资源及开发工具。首先对官方文档与教程进行梳理,这是学习uni-app的基础部分,涵盖从基本概念到具体开发指引的全方位资料。接着详细介绍了一款专为uni-app打造的高效开发工具HBuilderX的功能特点及其使用指南,并提到了CLI命令行工具可用于完成开发过程中的常规操作任务。同时,指出uni-app所处的强大社区氛围,无论是社区还是论坛都为开发者解决了实际遇到的问题并分享了大量有价值的经验;还提及多个专门为uni-app量身定制的UI框架和丰富的组件库,进一步提高了开发的便捷性和灵活性;最后列举了几类学习资源,诸如视频教程、博客与文章还有相关书籍均能助力新手成长为熟练工。所有这些资源都将有助于深入学习和理解uni-app这个跨平台框架的相关知识点,进而开发出优秀的多平台应用程序。 适用人群:有意进入跨平台移动应用开发领域的初学者,以及希望提升开发技能的专业人士。 使用场景及目标:为想要深入了解或者开始使用uni-app框架进行开发的人群提供完整路径指导;为目标受众建立起一套完整的学习路径来降低入门难度并提升实际操作能力。

    AI Agent 行业研究报告.pdf

    AI Agent 行业研究报告.pdf

    kibana-7.10.2 docker镜像压缩包,百度网盘

    请到网盘中自取压缩包,此包为kibana-7.10.2 镜像压缩包,是通过现有镜像导出来的,主要是为了解决有些机器无法连接外网,导致无法下载镜像 加载镜像: docker load -i kibana-7.10.2.tar 查看镜像: docker images 备注:elk此镜像配套资源,相同版本的elasticsearch和logstash,请在我的资源中搜索其他镜像

    图解AUTOSAR-CP-TcpIp逻辑图打包

    图解AUTOSAR-CP-TcpIp逻辑图打包

    【毕业设计-java】springboot-vue交友网站平台实现源码(完整前后端+mysql+说明文档+LunW).zip

    【毕业设计-java】springboot-vue交友网站平台实现源码(完整前后端+mysql+说明文档+LunW).zip

    海康相机平场矫正对比图

    海康相机平场矫正对比图

    数据科学_Python基础_数据分析_学习资源.zip

    python教程学习

    基于51单片机的蓝牙家电开关控制的设计与实现

    【论文+PPT+代码+开题+任务书】手机APP遥控的相关测试主要完成设计当中按键控制对应继电器是否正确打开以及关上,可以通过观察按下按键时继电器想匹配的LED是否点亮来进行验证。 进入手机APP后,根据APP中的按键分别控制不同的继电器,继电器1这个按键控制对应1号继电器的开启和关闭,手机蓝牙按下按键由OFF转变为ON那么电控制器件就可以变化一次,1号指示灯就可以由暗变亮了,再次按下手机蓝牙按键由ON转变为OFF电控制器件又变化一次,1号指示灯就可以由亮变暗。 如果点击继电器2则控制对应2号继电器的开启和关闭,手机蓝牙按下按键由OFF转变为ON那么电控制器件就可以变化一次,2号指示灯就可以由暗变亮了,再次按下手机蓝牙按键由ON转变为OFF电控制器件又变化一次,2号指示灯就可以由亮变暗。 如果点击继电器3则控制对应3号继电器的开启和关闭,手机蓝牙按下按键由OFF转变为ON那么电控制器件就可以变化一次,3号指示灯就可以由暗变亮了,再次按下手机蓝牙按键由ON转变为OFF电控制器件又变化一次,3号指示灯就可以由亮变暗。 如果点击继电器4则控制对应4号继电器的开启和关闭

Global site tag (gtag.js) - Google Analytics