zl程序教程

您现在的位置是:首页 >  后端

当前栏目

ThinkPHP控制器间实现相互调用的方法

方法 实现 调用 thinkphp 相互 控制器
2023-06-13 09:15:30 时间

本文实例讲述了ThinkPHP控制器间实现相互调用的方法。分享给大家供大家参考。具体实现方法如下:

ThinkPHP同一个项目里,两个控制器的方法如何相互调用呢?ThinkPHP提供了一个A(),通过它可以使控制器之间的方法相互调用,使得代码可以重复利用。

官方似乎对A()方法没有相关使用文档,现在通过一个例子来说一下如使用A()方法。

有两个控制器,ColumnsAction和NewsAction。ncatlist()是ColumnsAction的分类列表方法,现在我要在控制器NewsAction中调用ncatlist()方法。

代码如下:

复制代码代码如下:

classColumnsActionextendsAction{  
publicfunctionncatlist(){ 
   $Columns=newModel; 
                    
   $News=M("News"); 
   $list=$Columns->query("SELECTconcat(colPath,"-",colId)ASbpath,colId,colPid,colPath,colTitle,description,ordFROM".C("DB_PREFIX")."columnswheretypeid=1  
     
ORDERBYbpath,colId"); 
                                 
      $this->assign("alist",$list);      
     } 

classNewsActionextendsCommonAction{ 
     
   //首页 
   publicfunctionindex(){ 
  $Columns=A("Columns"); 
  $Columns->ncatlist(); 
}

这样在模板中你就可以循环alist来获取分类列表了。

说明:上面的代码是WBlog3.0(使用thinkphp3.0的核心包)的代码版断,不过我查看了thinkphp3.1和thinkph3.12核心包还保留着A方法。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。