R方法是可以调用其他的Controller中的方法,

例如

我想在Mit/DebugController.class.php中调用Foo/DoController.class.php中的share方法,

需要在Mit/DebugController.class.php中写成

$pass = R("Foo/Do/share",array("26121"));
new Foo\Controller\DoController

这里是同一个项目底下的不同分类(Foo和Mit)。

但是需要注意几点,

  1. 如果你定义了Mit/Conf底下定义的DB_PREFIX和在Foo/Conf不同,则在Foo/DoController.class.php的方法中需要重新动态定义C('DB_PREFIX','ofo');Foo底下的配置。简单说就是,** 你用R()调用的方法使用的配置是当前的分类下的,而不是它原来的配置**,需要小心;

  2. R()方法的第3个参数是指定** layer **,默认的是DEFAULT_C_LAYERController。如果你指定了其他的layer,例如Foo/ConfigEvent.class.php这,这里需要指定为Event

  3. 如果你定义了ACTION_SUFFIX也就是可以调用的方法的后缀,你必须要保证这里的DoController类中的sharepublic而且加了ACTION_SUFFIX

  4. 具体的你可以打开ThinkPHP的log,在RunTime/Logs/Mit/2016.07.19.log中查看具体的错误。

ThinkPHP的单字母方法在ThinkPHP/Common/functions.php定义的,具体可以查看那里。

Reference:

  1. http://www.thinkphp.cn/document/134.html
  2. http://www.thinkphp.cn/topic/4723.html
  3. http://www.thinkphp.cn/document/309.html

ThinkPHP 3.2.3的 R 方法的更多相关文章

  1. ThinkPHP函数详解:R方法

    R方法用于调用某个控制器的操作方法,是A方法的进一步增强和补充.关于A方法的用法见这里.R方法的调用格式:R('[项目://][分组/]模块/操作','参数','控制器层名称') 例如,我们定义了一个 ...

  2. ThinkPHP的A方法,R方法,M方法,D方法区别

    在Thinkphp中,实例化对象有这么几种方法,如果是类,有A和R方法,区别是A方法只是对象的实例化,而R方法是可以同时实例化对象里面的方法的,这里需要去指定,如下面的实例代码: <?php n ...

  3. ThinkPHP 跨模块调用操作方法(A方法与R方法)

    ThinkPHP 跨模块调用操作方法(A方法与R方法) 跨模块调用操作方法 前面说了可以使用 $this 来调用当前模块内的方法,但实际情况中还经常会在当前模块调用其他模块的方法.ThinkPHP 内 ...

  4. TP框架中的A方法和R方法

    ThinkPHP 跨模块调用操作方法(A方法与R方法) 跨模块调用操作方法 前面说了可以使用 $this 来调用当前模块内的方法,但实际情况中还经常会在当前模块调用其他模块的方法.ThinkPHP 内 ...

  5. Thinkphp 3.2.2 验证码check_verify方法,只能验证一次

    问题: Thinkphp 3.2.2 验证码check_verify方法,只能验证一次. function check_verify($code, $id = ''){ $verify = \Thin ...

  6. ThinkPHP的D方法和M方法的区别

    M方法和D方法的区别 ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类. 使用M方法 如果是如下情况,请考虑使用 ...

  7. ThinkPHP函数详解:session方法

    ThinkPHP函数详解:session方法 Session方法用于Session 设置.获取.删除和管理操作. Session 用于Session 设置.获取.删除和管理操作 用法    sessi ...

  8. ThinkPHP 中M方法和D方法详解----转载

    转载的地址,http://blog.163.com/litianyichuanqi@126/blog/static/115979441201223043452383/ 自己学到这里的时候,不能清除的分 ...

  9. thinkphp二维数组模板输出方法

    thinkphp二维数组模板输出方法 先写个记录,有空再整理发上来

随机推荐

  1. 计算机管理打不开的解决方法,直接cmd修改reg

    复制命令即可: reg add HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\she ...

  2. APP源码集中打包大放送!十一个千万级别APP源码随意处置!

    小伙伴们还在一个一个苦苦寻找各类APP源码吗?此贴集中打包最常用APP的源码,你想得到的APP,这里都有! 想做商城?这里有天猫! 想做同城服务?这里有大众点评! 想做外卖?这里有饿了么! 想做视频? ...

  3. lodash的运用

    Object 对象 1._.merge(object, [sources]) 此方法类似于_.assign,除了它递归地将源对象的自有和继承的可枚举字符串键控属性合并到目标对象中. 如果存在目标值,将 ...

  4. 第八篇 SQL Server代理使用外部程序

    本篇文章是SQL Server代理系列的第八篇,详细内容请参考原文 在这一系列的上一篇,学习了如何用SQL Server代理作业活动监视器监控作业活动和查看作业历史记录.在实时监控和管理SQL Ser ...

  5. jsp导出Excel功能的实现

    借助POI的excel接口,可以方便得实现excel导出功能: 首先需要引入poi对应的jar包 1.前端jsp页面需要一个a链接. web页面文件MIM类型的下载,只需要一个a元素,该a可以链到该文 ...

  6. python+selenium实现跨浏览器兼容性测试

    python https://www.python.org/ python是一种脚本语言, 易学易用,可以助你快速实现业务逻辑,高效集成系统. ----- http://zh.wikipedia.or ...

  7. [Call Vibrator] How to Enable Outgoing Call Vibration without ROOT

    Call Vibrator requires the radio log of phone to detect when outgoing call is answered. But since An ...

  8. Shell cmd set note

    查看启动信息 dmesg [ 0.000000] Initializing cgroup subsys cpuset[ 0.000000] Initializing cgroup subsys cpu ...

  9. python之django 资料

    里边有不少比较好的文章. http://www.cnblogs.com/luxiaojun/p/5795070.html

  10. Java 多线程 并发编程

    一.多线程 1.操作系统有两个容易混淆的概念,进程和线程. 进程:一个计算机程序的运行实例,包含了需要执行的指令:有自己的独立地址空间,包含程序内容和数据:不同进程的地址空间是互相隔离的:进程拥有各种 ...