>백엔드 개발 >PHP 튜토리얼 >ThinkPHP 컨트롤러 간 서로 호출하는 방법

ThinkPHP 컨트롤러 간 서로 호출하는 방법

不言
不言원래의
2018-06-06 14:03:453257검색

이 글에서는 주로 ThinkPHP 컨트롤러 간 상호 호출 방법을 소개합니다. 이 기능은 주로 A() 메서드를 통해 구현되며, 이는 코드 재사용률을 효과적으로 향상시킬 수 있어 도움이 필요한 친구들이 참고할 수 있습니다.

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

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

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

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

코드는 다음과 같습니다.

코드 복사코드는 다음과 같습니다.

class ColumnsAction extends Action{   
public function ncatlist(){  
    $Columns=new Model;  
                     
    $News = M("News");  
    $list=$Columns->query("SELECT concat(colPath,'-',colId) AS bpath, colId,colPid,colPath, colTitle, description,ord FROM ".C('DB_PREFIX')."columns where typeid=1   
      
ORDER BY bpath, colId");  
                                  
       $this->assign('alist',$list);       
      }  
}  
class NewsAction extends CommonAction {  
      
    // 首页  
    public function index() {  
   $Columns=A("Columns");  
   $Columns->ncatlist();  
}

이런 방식으로 템플릿에서 alist를 반복하여 카테고리 목록을 가져올 수 있습니다.

참고: 위 코드는 WBlog3.0(thinkphp3.0의 핵심 패키지 사용)의 코드 조각이지만 thinkphp3.1 및 thinkph3.12 핵심 패키지는 여전히 메소드 A를 유지하고 있음을 확인했습니다.

관련 권장 사항:

thinkphp3.2는 컨트롤러 전반에 걸쳐 다른 모듈을 호출하는 방법을 구현합니다.

thinkphp 프로젝트의 WeChat 공유 설명 콘텐츠를 사용자 정의하는 방법

위 내용은 ThinkPHP 컨트롤러 간 서로 호출하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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