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相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《smarty模板入门基础教程》及《PHP模板技术总结》。

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

(0)

相关推荐

  • ThinkPHP让分页保持搜索状态的方法

    对很多使用ThinkPHP框架的人来说,使用自动自带的增删改查基类,在分页的时候要保持结果页面的搜索状态,但是使用thinkphp手册中的方案却无法奏效. ThinkPHP手册中的解决方法是: //分页跳转的时候保证查询条件 foreach($map as $key=>$val) { $Page->parameter .= "$key=".urlencode($val).&; } 直接粘贴过来不能用,经过调试会发现,当$map不是一个数组的时候,那么变量是拿不到想要

  • ThinkPHP实现事务回滚示例代码

    ThinkPHP的事务回滚示例如下: $m=D('YourModel');//或者是M(); $m2=D('YouModel2'); $m->startTrans();//在第一个模型里启用就可以了,或者第二个也行 $result=$m->where('删除条件')->delete(); $result2=m2->where('删除条件')->delete(); if($result && $result2){ $m->commit();//成功则提交

  • ThinkPHP实现ajax仿官网搜索功能实例

    本文实例讲述了ThinkPHP实现ajax仿官网搜索功能的方法.分享给大家供大家参考. 具体实现方法如下: 后台代码: 复制代码 代码如下: //搜索,如果在1不在0  function search(){      $keyword = $_POST['search'];      $Goods=M('goods');    //这里我做的一个模糊查询到名字或者对应的id,主要目的因为我这个系统是    //商城系统里面用到直接看产品ID      $map['goods_id|goods_n

  • ThinkPHP中ajax使用实例教程

    本文实例讲述了ThinkPHP中使用ajax的方法,提交表单如下图所示: 点击提交,不需要刷新本页,将内容提交到数据库当中,并在本页显示提交的内容.如下图所示: 一.jquery实现方法: MessageAction.class.php页面代码如下: <?php class MessageAction extends Action{ function index(){ $this->display(); } function add(){ //ajaxReturn(数据,'提示信息',状态)

  • ThinkPHP模板IF标签用法详解

    ThinkPHP的IF标签可以用来定义复杂的条件判断,例如: <if condition="($name eq 1) OR ($name gt 100) "> value1 <elseif condition="$name eq 2" />value2 <else /> value3 </if> 注意:在condition属性中可以支持eq等判断表达式 ,同上面的比较标签,但是不支持带有">"

  • Thinkphp搜索时首页分页和搜索页保持条件分页的方法

    本文实例讲述了Thinkphp实现搜索时首页分页和搜索页保持条件分页的方法.分享给大家供大家参考.具体实现方法如下: 在做搜索查询时突然发现在首页用的分页代码在搜索页使用时出现错误,首页分页代码(代码中标注start与end部分为分页代码) 复制代码 代码如下: public function index(){   $res=D('Info');// 实例化Data数据对象 /**********start************/   import('ORG.Util.Page');// 导入

  • ThinkPHP多表联合查询的常用方法

    ThinkPHP中关联查询(即多表联合查询)可以使用 table() 方法或和join方法,具体使用如下例所示: 1.原生查询示例: 复制代码 代码如下: $Model = new Model(); $sql = 'select a.id,a.title,b.content from think_test1 as a, think_test2 as b where a.id=b.id '.$map.' order by a.id '.$sort.' limit '.$p->firstRow.',

  • ThinkPHP中redirect用法分析

    本文实例讲述了ThinkPHP中redirect用法.分享给大家供大家参考.具体分析如下: redirect 重定向的通用语法为:redirect(url,params=array(),delay=0,msg=''),假设当前为默认 HOME分组 Aritcle模块 insert操作,一些例子如下: 复制代码 代码如下: // 跳转到 edit 操作   $this->redirect('edit'); // 跳转到 UserAction下的edit 操作   $this->redirect(

  • thinkphp常见路径用法分析

    本文实例分析了thinkphp常见路径用法.分享给大家供大家参考.具体如下: 这里介绍的标签主要有: __root__ __self__ __action__ __url__ __app__ __public__ 假如你项目首页的URL是:www.test.com/other/Form 假如当前模块是:Index 假如当前操作是:index 那么首页完整的URL:http://www.test.com/other/Form/index.php/Index/index 1 __ROOT__:/ot

  • 采用thinkphp自带方法生成静态html文件详解

    thinkphp本身自带了一个有效的生成静态页的方法,(该方法在tp2.0的手册上有说明,3.0的手册上没有说明了,不过3.0方法还是存在的.) $this->buildHtml('静态文件', '静态路径','模板文件'); 稍微说明下参数,有些朋友问我这个参数和具体如何使用. 参数一:静态文件,是指生成后的静态文件名,文件保存路径完整的就是:静态路径/静态文件.例如静态文件设置a/index.那么保存的路径就是项 目路径/Html/a/index.html(默认的静态路径在项目路径的Html

  • ThinkPHP使用getlist方法实现数据搜索功能示例

    本文实例讲述了ThinkPHP使用getlist方法实现数据搜索功能.分享给大家供大家参考,具体如下: 自己在ThinkPHP之中的model之中书写getlist方法,其实所谓的搜索功能无非就是数据库查询之中用到的like  %string%,或者其他的 字段名=特定值,这些sql语句拼接在and语句之中: HTML之中: <form action="" method="get"> <table class="account_table

  • ThinkPHP页面跳转success与error方法概述

    ThinkPHP自身提供了success方法与error方法用于实现带提示信息的页面跳转功能,可实现添加数据后显示提示信息并跳转的效果.success 方法用于操作成功后的提示,error 用于操作失败后的提示,二者使用方法完全一致,下面以success 方法来进行说明. 1.success方法   success方法语法如下: success(message, ajax)  参数说明message可选.页面提示信息.ajax可选.是否AJAX 方式提交,默认为false . 如果是AJAX 方

随机推荐