>백엔드 개발 >PHP 튜토리얼 >ThinkPHP 컨트롤러 간 상호 호출 방법_php 예제

ThinkPHP 컨트롤러 간 상호 호출 방법_php 예제

WBOY
WBOY원래의
2016-05-16 20:33:31954검색

이 기사의 예에서는 ThinkPHP 컨트롤러 간의 상호 호출 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 구현 방법은 다음과 같습니다.

같은 ThinkPHP 프로젝트에서 두 컨트롤러의 메서드는 어떻게 서로 호출하나요? ThinkPHP는 코드를 재사용할 수 있도록 컨트롤러 간 메소드가 서로 호출할 수 있는 A()를 제공합니다.

A() 메서드 사용에 대한 공식 문서는 없는 것 같습니다. 이제 예제를 사용하여 A() 메서드 사용 방법을 설명하겠습니다.

ColumnsAction과 NewsAction이라는 두 개의 컨트롤러가 있습니다. ncatlist()는 ColumnsAction의 카테고리 목록 메소드입니다. 이제 컨트롤러 NewsAction에서 ncatlist() 메소드를 호출하려고 합니다.

코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
class ColumnsAction 확장 Action{
공개 함수 ncatlist(){
$Columns=새 모델
~ $News = M("뉴스")
$list=$Columns->query("SELECT concat(colPath,'-',colId) AS bpath, colId,colPid,colPath, colTitle, 설명,ord FROM ".C('DB_PREFIX')."columns where typeid =1
       
ORDER BY bpath, colId");
~         $this->할당('alist',$list);                                                               
}
Class NewsAction은 CommonAction을 확장합니다. {
       
// 홈페이지
공개 함수 인덱스() {
$Columns=A("열")
$열->ncatlist()
}


이런 방식으로 템플릿에서 alist를 반복하여 카테고리 목록을 얻을 수 있습니다.
참고: 위 코드는 WBlog3.0의 코드 조각(thinkphp3.0의 핵심 패키지 사용)이지만 thinkphp3.1 및 thinkph3.12 핵심 패키지에는 여전히 메서드 A가 유지되어 있음을 확인했습니다.

이 글이 모든 분들의 ThinkPHP 프레임워크 프로그래밍에 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.