> 백엔드 개발 > PHP 튜토리얼 > ThinkPHP之R方法实例详解_PHP教程

ThinkPHP之R方法实例详解_PHP教程

WBOY
풀어 주다: 2016-07-13 10:24:17
원래의
1007명이 탐색했습니다.

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

R方法的调用格式:

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

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

1

2

3

4

5

class UserAction extends Action {

  public function detail($id){

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

  }

 }

로그인 후 복사

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

1

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

로그인 후 복사

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

1

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

로그인 후 복사

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

1

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

로그인 후 복사

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

1

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

로그인 후 복사

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

官方的建议是不要在同一层做太多调用,否则会引起逻辑的混乱,被公共调用的部分应该封装成单独的接口,可以借助ThinkPHP3.1的新特性多层控制器,单独添加一个控制器层用于接口调用,例如,我们增加一个Api控制器层,

1

2

3

4

5

class UserApi extends Action {

  public function detail($id){

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

  }

 }

로그인 후 복사

然后,使用R方法调用

1

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

로그인 후 복사

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

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/825501.htmlTechArticleThinkPHP的R方法用于调用某个控制器的操作方法,是A方法的进一步增强和补充。 R方法的调用格式: R('[项目://][分组/]模块/操作','参数','控制...
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿