本文實例講述了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方法。
更多關於thinkPHP相關內容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結》、《ThinkPHP常用方法總結》、《smarty模板入門基礎教程》及《PHP模板技術總結》。
希望本文所述對大家基於ThinkPHP框架的PHP程序設計有所幫助。