zoukankan      html  css  js  c++  java
  • ThinkPHP 3.2.2跨控制器调用方法

       所谓跨控制器调用,指的是在一个控制器中调用另一个控制器的某个方法。在ThinkPHP中有三种方式实现跨控制器调用:

    • 直接实例化;
    • A()函数实例化;
    • R()函数实例化。

      (1)直接实例化

       直接实例化就是通过new关键字实例化相关控制器,例如:

    1 $goods = new GoodsController()  //直接实例化Goods控制器类
    2 $info = $goods->info();    //调用Goods控制器类的info()方法

       需要注意的是,如果实例化的控制器与当前控制器不在同一目录下,需要指定绝对路径。例如要实例化Admin模块下的User控制器,代码如下:

    1 $goods = new AdminControllerUserController();

       (2)A()函数实例化

         ThinkPHP提供了A()函数实例化其他控制器,使用方法如下:

    1 $goods = A('Goods');  //A()函数实例化GoodsController类
    2 $info = $goods->info();  //调用Goods控制器类的info()方法

         从上述代码可以看出,A()函数相对直接实例化的方式简洁很多,仅需要传入控制器名即可。A()函数同样可以实例化其他模块下的控制器,例如:

    1 $goods = A('Admin/Goods');

      (3)R()函数实例化

       R()函数的使用与A()函数基本一致,唯一不同的是,R()函数可以在实例化控制器的时候把操作方法一并传进去,如此就省略了调用操作方法的步骤,例如:

    1 $info = R('Admin/Goods/info');
  • 相关阅读:
    算法思想杂谈【原创】
    OpenGL坐标变换专题
    XSS的原理分析与解剖:第三章(技巧篇)【转】
    php实现字符串翻转
    (基础) --- php session原理和多台服务器session共享问题
    (基础) --- php get和post的区别
    (基础)--- PHP单引号和双引号区别
    MySQL主从复制原理解析
    详解MYSQL各种优化原理
    mysql索引详解
  • 原文地址:https://www.cnblogs.com/songziqing/p/5197134.html
Copyright © 2011-2022 走看看