ThinkPHP 3.2.3的 R 方法
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)。
但是需要注意几点,
如果你定义了
Mit/Conf
底下定义的DB_PREFIX
和在Foo/Conf
不同,则在Foo/DoController.class.php的方法中需要重新动态定义C('DB_PREFIX','ofo');
为Foo
底下的配置。简单说就是,** 你用R()调用的方法使用的配置是当前的分类下的,而不是它原来的配置**,需要小心;R()方法的第3个参数是指定** layer **,默认的是
DEFAULT_C_LAYER
的Controller
。如果你指定了其他的layer,例如Foo/ConfigEvent.class.php
这,这里需要指定为Event
。如果你定义了
ACTION_SUFFIX
也就是可以调用的方法的后缀,你必须要保证这里的DoController
类中的share
是public
而且加了ACTION_SUFFIX
;具体的你可以打开ThinkPHP的log,在
RunTime/Logs/Mit/2016.07.19.log
中查看具体的错误。
ThinkPHP的单字母方法在ThinkPHP/Common/functions.php
定义的,具体可以查看那里。
Reference:
- http://www.thinkphp.cn/document/134.html
- http://www.thinkphp.cn/topic/4723.html
- http://www.thinkphp.cn/document/309.html
ThinkPHP 3.2.3的 R 方法的更多相关文章
- ThinkPHP函数详解:R方法
R方法用于调用某个控制器的操作方法,是A方法的进一步增强和补充.关于A方法的用法见这里.R方法的调用格式:R('[项目://][分组/]模块/操作','参数','控制器层名称') 例如,我们定义了一个 ...
- ThinkPHP的A方法,R方法,M方法,D方法区别
在Thinkphp中,实例化对象有这么几种方法,如果是类,有A和R方法,区别是A方法只是对象的实例化,而R方法是可以同时实例化对象里面的方法的,这里需要去指定,如下面的实例代码: <?php n ...
- ThinkPHP 跨模块调用操作方法(A方法与R方法)
ThinkPHP 跨模块调用操作方法(A方法与R方法) 跨模块调用操作方法 前面说了可以使用 $this 来调用当前模块内的方法,但实际情况中还经常会在当前模块调用其他模块的方法.ThinkPHP 内 ...
- TP框架中的A方法和R方法
ThinkPHP 跨模块调用操作方法(A方法与R方法) 跨模块调用操作方法 前面说了可以使用 $this 来调用当前模块内的方法,但实际情况中还经常会在当前模块调用其他模块的方法.ThinkPHP 内 ...
- Thinkphp 3.2.2 验证码check_verify方法,只能验证一次
问题: Thinkphp 3.2.2 验证码check_verify方法,只能验证一次. function check_verify($code, $id = ''){ $verify = \Thin ...
- ThinkPHP的D方法和M方法的区别
M方法和D方法的区别 ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类. 使用M方法 如果是如下情况,请考虑使用 ...
- ThinkPHP函数详解:session方法
ThinkPHP函数详解:session方法 Session方法用于Session 设置.获取.删除和管理操作. Session 用于Session 设置.获取.删除和管理操作 用法 sessi ...
- ThinkPHP 中M方法和D方法详解----转载
转载的地址,http://blog.163.com/litianyichuanqi@126/blog/static/115979441201223043452383/ 自己学到这里的时候,不能清除的分 ...
- thinkphp二维数组模板输出方法
thinkphp二维数组模板输出方法 先写个记录,有空再整理发上来
随机推荐
- hibernate一对多注解
package net.zmcheng.model; import java.util.HashSet;import java.util.Set; import javax.persistence.C ...
- 前端开发者需要的10个Sublime插件
Sublime Text是最强大的代码编辑器之一,它具有一些神奇的功能,而且可以通过安装插件或包来变得更强大.这些插件为Sublime Text添加了额外的功能.当今有很多插件可以用来满足几乎任何你的 ...
- 第三篇 SQL Server代理警报和操作员
本篇文章是SQL Server代理系列的第三篇,详细内容请参考原文. 正如这一系列的上一篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行,除了步骤中执行的工 ...
- 第五篇 Replication:事务复制-How it works
本篇文章是SQL Server Replication系列的第五篇,详细内容请参考原文. 这一系列包含SQL Server事务复制和合并复制的详细内容,从理解基本术语和设置复制的方法,到描述它是如何工 ...
- News: Visual Studio Code support debugging Linux Apps
http://arstechnica.com/information-technology/2015/11/visual-studio-now-supports-debugging-linux-app ...
- 注册页面的简单搭建(H5)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Exchanger示例
Exchanger有两个用户,当一(A)方调用exchange方法之后,就开始等待,直到另一(B)方开始调用exchange方法.两个exchange可以认为是原子性的. public class C ...
- redmine发送邮件
vim /data/server/redmine/apps/redmine/htdocs/config/configuration.yml default: # Outgoing emails con ...
- ssh隧道技术
大家都知道SSH是一种安全的传输协议,用在连接服务器上比较多.不过其实除了这个功能,它的隧道转发功能更是吸引人.下面是个人根据自己的需求以及在网上查找的资料配合自己的实际操作所得到的一些心得. SSH ...
- eclipse lua使用
首先安装lua eclipse,装插件或者独立版的都可以.但是在独立版的eclipse装subclipse会报错,Failed to prepare partial IU.解决办法: work aro ...