跨控制器调用

跨控制器调用就是在本控制器里调用其他控制器里的方法或属性。

$u = A("User");//在该控制器里实例化其他控制器User对象,A快捷函数的用法:A([模块/]控制器标志

$u->member();

也可以简写成:R("User/member");R函数是对A函数的一个封装。

A和R函数不仅可以跨控制器,跨模块,还可以跨项目调用,A([项目名://][模块/]控制器标志),R([项目名://][模块/]控制器标志/方法名)。

时间: 2024-10-12 21:13:24

跨控制器调用的相关文章

ThinkPHP 3.2.2跨控制器调用方法

 所谓跨控制器调用,指的是在一个控制器中调用另一个控制器的某个方法.在ThinkPHP中有三种方式实现跨控制器调用: 直接实例化: A()函数实例化; R()函数实例化. (1)直接实例化  直接实例化就是通过new关键字实例化相关控制器,例如: 1 $goods = new GoodsController() //直接实例化Goods控制器类 2 $info = $goods->info(); //调用Goods控制器类的info()方法 需要注意的是,如果实例化的控制器与当前控制器不在同一目

ThinkPHP跨控制器调用方法

跨控制器调用方法 1. 先造对象,再调用里面的方法 $sc=new \Home\Controller\IndexController();  用绝对路径找echo $sc->ShuChu(); 2. $sc=new IndexController();  用相对路径 echo $sc->ShuChu(); 还可以使用thingkphp中的快捷方法 1. $sc=A("Index");      使用TP框架的快捷方法A来创建控制器对象  ()内直接写控制器名 [跨模块调用]

ThinPHP命名空间,连接数据库是要修改的配置文件,Model数据模型层,跨控制器调用,如何获取系统常量信息,

一.命名空间(主要是为了实现自动加载类) *命名空间(相当于虚拟的目录),为了让类有一个统一的文件夹来管理(可以自动加载'类'),每个文件都要有命名空间*tp如何做命名空间:*TP框架下有一个初始命名空间(相当于根目录)ThinkPHP\Libray*在初始命名空间下又包含很多根命名空间,这些根命名空间主要分两类:1.TP核心类里面的根(系统文件)        在Libray下,有几个文件夹就有几个根(所有的文件夹都是根)2.APP里面的根(自定义文件)        APP里面的根是以模块名

thinkphp3.2跨控制器调用其他模块的方法

thinphp中前台后台都有互相调用方法,这样可以省去重复内容. 1 2 $hello = new \Admin\Common\Fun\hello(); $hello->hehe(); 调用其他地方的方法同理. 如果是在同控制器里模块名可以省略. 如调用common里面的某个类的方法: 1 2 $hello = new \Common\Fun\hello(); $hello->hehe(); 框架里面提供了跨模块夸.控制器的 A() 方法 1 2 3 4 5 6 7 class GoodsCo

phalcon跨控制器调用

最近小贩在使用Phalcon框架时遇到了一个问题,就是在当前控制器如果调用其他控制器中的方法,现在问题解决,特此贴出代码: $this -> dispatcher -> forward(array(     'controller'    =>    '其他控制器名',     'action'        =>    '其他控制器中的方法名' )); 如果想像其他控制器传递参数,代码如下: $this -> dispatcher -> forward(array(

tp5跨控制器调用方法

法一: 若在同一个controller文件夹下的控制器互相调用的话可以直接new来实例化: 例如在Index 控制器里面调用Menus $menus=new Menus; //在当前控制器里实例化Menus 控制器 或者用 controller()助手函数来实例化 $menus=controller('Menus'); 法二:如果不在一个模块下的话可以通过 use 来引入 比如 : use app\common\controller\Menus; 然后再实例化 $menus=new Menus;

thinphp讲解(三)——空操作、空控制器、跨控制器、命名空间

一.“空操作”本质意思:一个对象(控制器)调用本身不存在的操作方法 一般网站处于安全考虑不给用户提示任何错误信息 在tp里面控制器controller.class.php里有个_call()方法 所以空操作有两种解决方案: ①     在对应的控制器里边制作一个方法,名称为”_empty”,这个控制器的空操作都会自动执行该方法.(推荐使用) function _empty() //解决方案一 { echo "网页不存在,请检查浏览器信息!"; } ②     给空操作的名称制作一个同名

tp框架基础控制器调用方法

public function indd(){ //调用该控制器下的某个方法 $this ->index(); //跨控制器调用 $k = A("index");// 创建控制器对象 $k -> index(); //跨模块调用 $k = A("home/index"); $k -> index(); }

Thinkphp入门 二 —空操作、空模块、模块分组、前置操作、后置操作、跨模块调用(46)

原文:Thinkphp入门 二 -空操作.空模块.模块分组.前置操作.后置操作.跨模块调用(46) [空操作处理] 看下列图: 实际情况:我们的User控制器没有hello()这个方法 一个对象去访问这个类不存在的方法,那么它会去访问”魔术方法__call()” 用户访问一个不存在的操作—>解决:给每个控制器都定义个_empty()方法来处理 第二个解决方法:定义一个空操作 [空模块处理] 我们使用一个类,但是现在这个类还没有被include进来. 我们可以通过自动加载机制处理__autoloa