이 기사의 예에서는 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 프레임워크 프로그래밍에 도움이 되기를 바랍니다.