이 글은 주로 ThinkPHP의 R 메소드를 소개하고 있으니 필요하신 분들은 참고하시면 됩니다.
ThinkPHP의 R 메소드는 특정 컨트롤러의 동작 메소드를 호출하는데 사용되는데, 이는 A 메소드를 더욱 발전시키고 보완한 것입니다.
R 메서드 호출 형식:
R('[Project://][Group/]Module/Operation','Parameters','Controller layer name')
예를 들어 작업을 정의합니다. is:
class UserAction extends Action { public function detail($id){ return M('User')->find($id); } }
그런 다음 R 메서드를 통해 다른 컨트롤러에서 이 작업 메서드를 호출할 수 있습니다. (일반적으로 R 메서드는 모듈 간 호출에 사용됩니다.)
$data = R('User/detail',array('5'));
은 해당 컨트롤러의 세부 메서드를 호출하는 것을 의미합니다. 사용자 컨트롤러(세부 메소드는 공개 유형이어야 함), 반환 값은 ID 5의 사용자 데이터를 쿼리하는 것입니다. 호출하려는 작업 메서드에 매개변수가 없으면 두 번째 매개변수를 비워 두고 직접 사용할 수 있습니다.
$data = R('User/detail');
또한 그룹 간 및 프로젝트 호출도 지원할 수 있습니다. 예:
R('Admin/User/detail',array('5'));
Admin 그룹 아래 User 컨트롤러의 세부 메소드를 호출함을 나타냅니다.
R('Admin://User/detail',array('5'));
은 Admin 프로젝트에서 User 컨트롤러의 세부 메소드를 호출하는 것을 의미합니다.
공식적인 권장 사항은 동일한 레이어에서 너무 많은 호출을 하지 않는 것입니다. 그렇지 않으면 공개적으로 호출되는 부분을 별도의 인터페이스로 캡슐화해야 합니다. 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 메서드의 호출 메서드를 변경할 필요가 없습니다.
관련 추천:
에 대한 사용자 등록, 로그인 및 메시지의 전체 예
위 내용은 ThinkPHP R 방법 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!