ThinkPHP之R方法实例详解

 更新时间:2014年06月20日 11:51:10   投稿:shichen2014  
这篇文章主要介绍了ThinkPHP的R方法,需要的朋友可以参考下

ThinkPHP的R方法用于调用某个控制器的操作方法,是A方法的进一步增强和补充。

R方法的调用格式:

R('[项目://][分组/]模块/操作','参数','控制器层名称')

例如,我们定义了一个操作方法为:

class 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方法。

官方的建议是不要在同一层做太多调用,否则会引起逻辑的混乱,被公共调用的部分应该封装成单独的接口,可以借助ThinkPHP3.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方法的调用方式。

相关文章

  • Laravel 自动转换长整型雪花 ID 为字符串的实现

    Laravel 自动转换长整型雪花 ID 为字符串的实现

    这篇文章主要介绍了Laravel 自动转换长整型雪花 ID 为字符串的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • PHP删除字符串中非字母数字字符方法总结

    PHP删除字符串中非字母数字字符方法总结

    在本篇文章里小编给大家分享了关于PHP删除字符串中非字母数字字符方法和知识点,有需要的朋友们学习下。
    2019-01-01
  • 收藏的一个php小偷的核心程序

    收藏的一个php小偷的核心程序

    收藏的一个php小偷的核心程序...
    2007-04-04
  • php购物车实现代码

    php购物车实现代码

    php购物车实现代码这个代码比较全,需要的朋友可以参考下。
    2011-10-10
  • ThinkPHP3.1之D方法实例详解

    ThinkPHP3.1之D方法实例详解

    这篇文章主要介绍了ThinkPHP3.1之D方法的使用,需要的朋友可以参考下
    2014-06-06
  • 三个思路解决laravel上传文件报错:413 Request Entity Too Large问题

    三个思路解决laravel上传文件报错:413 Request Entity Too Large问题

    上传图片的时候,是用laravel自带的上传图片的方法,一下气上传了20张,结果就无情报错:413 Request Entity Too Large,后面查一下,这个报错信息是nginx报的错误,不是php报的错误。也就是说在上传图片的时候被nginx拦截了
    2017-11-11
  • php脚本运行时的超时机制详解

    php脚本运行时的超时机制详解

    在我们平常的开发中,也许曾经都遇到过PHP脚本运行超时的情况,当遇到这种情况我们经常会通过使用 set_time_limit(非安全模式),或修改配置文件并重启服务器,或者修改程序减少程序的执行时间,使其在允许的范围之内,以解决此问题。
    2016-02-02
  • Yii中实现处理前后台登录的新方法

    Yii中实现处理前后台登录的新方法

    这篇文章主要介绍了Yii中实现处理前后台登录的新方法,具体分析了Yii中前后台登录的新思路与相关实现技巧,需要的朋友可以参考下
    2015-12-12
  • 在Laravel中使用DataTables插件的方法

    在Laravel中使用DataTables插件的方法

    DataTables 是一个 jQuery 的表格插件,记录一下在 Laravel 中使用的常用功能和用法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • 简单介绍PHP非阻塞模式

    简单介绍PHP非阻塞模式

    非阻塞模式是指利用socket事件的消息机制,Server端与Client端之间的通信处于异步状态,本文给大家介绍php非阻塞模式,感兴趣的朋友一起学习吧
    2016-03-03

最新评论