# ThinkPHP函數詳解:R函數
[TOC]
R函數用于調用某個控制器的操作方法,是A函數的進一步增強和補充。關于[A函數](http://www.hmoore.net/curder/php/123662)
R方法的調用格式
>[danger]
**R('[資源://][模塊/]控制器/操作');**
例如,我們定義了一個操作方法【方法需要時Public權限】為:
~~~
<?php
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權限】為:
~~~
<?php
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方法的調用方式。
- 開始
- PHP配置參數的介紹
- PHP代碼優化
- php中的命名空間
- PHP文件上傳類
- PHP文件下載
- PHP驗證碼
- ThinkPHP3.2 框架函數
- A函數:實例化控制器
- C函數:設置和獲取配置參數
- D函數:實例化模型
- F 函數:快速緩存設置和存取
- M函數:例化模型(無需定義模型類)
- L函數:設置和獲取語言變量
- S 函數:緩存設置和存取
- R函數:直接調用控制器的操作方法
- U函數:URL地址生成
- I 函數:安全獲取系統輸入變量
- 日志
- ThinkPHP在關閉調試模式導致函數被緩存
- MySQL觸發器使用時遇到的坑
- PHP常用函數
- 五一回家記錄
- window的PHP開發(wamp)下安裝redis擴展
- Windows下安裝使用Redis
- PHP7新特性
- 利用 phpmailer 類實現隊列發送郵件
- GD 庫圖像處理
- 檢測 PHP 模塊是否開啟
- GD 庫操作一般步驟
- GD 庫繪畫改變字體
- GD 繪制驗證碼
- GD 縮略圖實現
- GD 繪制水印
- 日期時間函數庫
- PHP 函數
- 無限極分類