php调用控制器方法调用方法调用,R函数:直接调用控制器的操作方法

# ThinkPHP函数详解:R函数

[TOC]

R函数用于调用某个控制器的操作方法,是A函数的进一步增强和补充。关于[A函数](http://www.kancloud.cn/curder/php/123662)

R方法的调用格式

>[danger]

**R('[资源://][模块/]控制器/操作');**

例如,我们定义了一个操作方法【方法需要时Public权限】为:

~~~

namespace Home\Controller;

use Think\Controller;

class UserController extends Controller {

// 列出某个用户的详细信息

public function detail($id){

return M('User')->find($id);

}

}

?>

~~~

文件路径为 **APP_PATH/Home/Controlel/UserController.class.php**

## 当前模块下的控制器调用detail方法

~~~

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

~~~

调用控制器的路径为 **APP_PATH/Home/Controlel/HomeController.class.php**

## 其他模块下的控制器调用detail方法

~~~

$detail = R('Home/User/detail',array(1));

~~~

## 调用非控制器命名空间下detail方法

例如,我们定义了一个逻辑层操作方法【方法需要时Public权限】为:

~~~

namespace Home\Logic;

use Think\Controller;

class UserLogic extends Controller{

public function detail($id){

return M('User')->find($id);

}

}

~~~

文件位于 **APP_PATH/Home/Logic/UserLogic.class.php**

相同模块下调用的方法是

~~~

$detail = R('User/detail',array(100000),'Logic');

~~~

调用文件位于 **APP_PATH/Home/Controller/HomeController.class.php**

不同模块下的调用方法是

~~~

$detail = R('Home/User/detail',array(100000),'Logic');

~~~

调用文件位于 **APP_PATH/Admin/Controller/IndexController.class.php**

也就是说,R函数的第三个参数支持指定调用的控制器层。

同时,R函数调用操作方法的时候可以支持操作后缀设置C('ACTION_SUFFIX'),如果你设置了操作方法后缀,仍然不需要更改R方法的调用方式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值