ThinkPHP控制器间实现相互调用的方法,thinkphp控制器
Jun 13, 2016 am 09:22 AMThinkPHP控制器间实现相互调用的方法,thinkphp控制器
本文实例讲述了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框架程序设计有所帮助。
直接 $this -> function(); 就可以了... 完全把Action当做一个Class看待即可,灵活使用,参数也是可以加的,不过声明的时候尽量加上默认参数,免得通过模块调用的时候,报出无参数的提醒错误。
将获取ID的用另外的方法封装,比如protected function getId(){
$id = //获取方法
return $id
}
其他方法中进行调用$id = $this->getId();

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Windows 11에서 Xbox One 컨트롤러를 올바르게 보정하는 방법

Laravel을 처음부터 학습하기: 컨트롤러 메소드 호출에 대한 자세한 설명

개발 제안: ThinkPHP 프레임워크를 사용하여 비동기 작업을 구현하는 방법
