ThinkPHP开发框架函数详解:R方法

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

class&">nbsp;UserAction extends Action {     public 
function detail($id){         return M('User')->find($id);     } }

那么就可以通过R方法在其他控制器里面调用这个操作方法(一般R方法用于跨模块调用)

$data = R('User/detail',
array('5'));

表示调用User控制器的detail方法(detail方法必须是public类型),返回值就是查询id为5的一个用户数据。如果你要调用的操作方法是没有任何参数的话,第二个参数则可以留空,直接使用:

$data = R('User/detail');

也可以支持跨分组和项目调用,例如:

R('Admin/User/detail',array('5'));

表示调用Admin分组下面的User控制器的detail方法。

R('Admin://User/detail',array('5'));

表示调用Admin项目下面的User控制器的detail方法。
官方的建议是不要在同一层多太多调用,会引起逻辑的混乱,被公共调用的部分应该封装成单独的接口,可以借助3.1的新特性多层控制器,单独添加一个控制器层用于接口调用,例如,我们增加一个Api控制器层,

class UserApi extends Action {     public function detail($id){         return M('User')->find($id);     } }

然后,使用R方法调用

$data = R('User/detail',array('5'),'Api');

也就是说,R方法的第三个参数支持指定调用的控制器层。
同时,R方法调用操作方法的时候可以支持操作后缀设置C('ACTION_SUFFIX'),如果你设置了操作方法后缀,仍然不需要更改R方法的调用方式。

时间: 2024-08-01 22:57:33

ThinkPHP开发框架函数详解:R方法的相关文章

ThinkPHP开发框架函数详解:C方法_php技巧

C方法是ThinkPHP用于设置.获取,以及保存配置参数的方法,使用频率较高. 了解C方法需要首先了解下ThinkPHP的配置,因为C方法的所有操作都是围绕配置相关的.ThinkPHP的配置文件采用PHP数组格式定义. 由于采用了函数重载设计,所以用法较多,我们来一一说明下. 设置参数 C('DB_NAME','thinkphp'); 表示设置DB_NAME配置参数的值为thinkphp,由于配置参数不区分大小写,所以下面的写法也是一样: C('db_name','thinkphp'); 但是建

ThinkPHP开发框架函数详解:field方法的用法总结

ThinkPHP的连贯操作方法中field方法有很多的使用技巧,field方法主要目的是标识要返回或者操作的字段,下面详细道来. 1.用于查询 在查询操作中field方法是使用最频繁的. $Model->field('id,title,content')->select(); 这里使用field方法指定了查询的结果集中包含id,title,content三个字段的值.执行的SQL相当于: SELECT&http://www.aliyun.com/zixun/aggregation/37

ThinkPHP开发框架函数详解:C方法

C方法是ThinkPHP用于设置.获取,以及保存配置参数的方法,使用频率较高.了解C方法需要首先了解下ThinkPHP的配置,因为C方法的所有操作都是围绕配置相关的.ThinkPHP的配置文件采用PHP数组格式定义.由于采用了函数重载设计,所以用法较多,我们来一一说明下.设置参数 C('DB_NAME','thinkphp'); 表示设置DB_NAME配置参数的值为thinkphp,由于配置参数不区分大小写,所以下面的写法也是一样: C('db_http://www.aliyun.com/zix

ThinkPHP开发框架函数详解:cookie方法

cookie函数也是一个多元化操作函数,完成cookie的设置.获取和删除操作. Cookie 用于http://www.aliyun.com/zixun/aggregation/12583.html">Cookie 设置.获取.删除操作 用法 cookie($name, $value='', $option=null) 参数 name(必须):要操作的cookie变量 value(可选):要设置的cookie值 option(可选):传入的cookie设置参数,默 认为空 返回值 见详(

ThinkPHP开发框架函数详解:session方法

Session方法用于http://www.aliyun.com/zixun/aggregation/16962.html">Session 设置.获取.删除和管理操作. Session 用于Session 设置.获取.删除和管理操作 用法 session($name, $value='') 参数 name(必须):如果传入数组 则表示进行session初始化,如果传入null表示清空当前session,如果是字符串则表示session赋值.获取或者操作. Value(可选):要设置的se

ThinkPHP开发框架函数详解:M方法

M方法用于实例化一个基础模型类,和D方法的区别在于:1.不需要自定义模型类,减少IO加载,性能较好:2.实例化后只能调用基础模型类(默认是Model类)中的方法:3.可以在实例化的时候指定表前缀.数据库和数据库的连接信息:D方法的强大则体现在你封装的自定义模型类有多强,不过随着新版ThinkPHP框架的基础模型类的功能越来越强大,M方法也比D方法越来越实用了.M方法的调用格式:M('[基础模型名:]模型名','6184.html">数据表前缀','数据库连接信息') 我们来看下M方法具体有

ThinkPHP开发框架函数详解:U方法

U方法用于完成对URL地址的组装,特点在于可以自动根据当前的URL模式和设置生成对应的URL地址,格式为:U('地址','参数','伪静态','是否跳转','显示域名'); 在模板中使用U方法而不是固定写死URL地址的好处在于,一旦你的环境变化或者参数设置改变,你不需要更改模板中的任何代码.在模板中的调用格式需要采用 {:U('地址', '参数'-)} 的方式U方法的用法示例: U('User/add')&http://www.aliyun.com/zixun/aggregation/37954

ThinkPHP开发框架函数详解:cache方法

cache方法是3.0版本开始新增的缓存管理方法. cache 用于缓存设置. 获取.删除操作 用法 cache($http://www.aliyun.com/zixun/aggregation/11696.html">name, $value='',$expire=0) 参数 name(必须):如果传入数组 则表示进行缓存初始化,如果是字符串则表示缓存赋值.获取或者删除操作. Value(可选):要设置的缓存值,如果传入null表示删除缓存,默 认为空字符串. expire(可选):要设

ThinkPHP开发框架函数详解:import方法

import方法是ThinkPHP框架用于类库导入的封装实现,尤其对于项目类库.扩展类库和第三方类库的导入支持,import方法早期的版本可以和java的import方法一样导入目录和通配符导入,后来考虑到性能问题,在后续的版本更新中不断改进和简化了,所以现在的用法比较简单明了.调用格式:import('类库名', '起始路径', '类库后缀') imprt方法有一个别名vendor方法,专门用于导入第三方类库,区别在于起始路径和类库后缀默认值不同.我们来分析下具体的用法: 导入系统基类库 系统