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

本文实例讲述了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程序设计有所帮助。

时间: 2025-01-29 20:17:27

ThinkPHP控制器间实现相互调用的方法_php实例的相关文章

Yii控制器中操作视图js的方法_php实例

本文实例讲述了Yii控制器中操作视图js的方法.分享给大家供大家参考,具体如下: //YII framework路径 Yii::getFrameworkPath(); //protected/runtime Yii::app()->getRuntimePath(); //protected/venders目录 Yii::import('application.venders.*'); //或在protected/config/main.php说明 'import'=>array( //....

ThinkPHP基于PHPExcel导入Excel文件的方法_php实例

本文实例讲述了ThinkPHP基于PHPExcel导入Excel文件的方法.分享给大家供大家参考.具体方法如下: 主要知识点,用PHPExcel导入Excel数据经过这几天测试还是可以,xls,xlsx都可以获取Excel的数据. 下载地址:http://phpexcel.codeplex.com/ 开发思路: 1.先把Excel文件上传到服务器 2.获取服务器Excel文件内容 3.写入数据库 一.上传Excel文件,使用PHP里自带的上传方法 "\Think\Upload();",

ThinkPHP实现将SESSION存入MYSQL的方法_php实例

本文以实例讲解了ThinkPHP实现将SESSION存入MYSQL的方法,所采用的运行环境是ThinkPHP3.1.2版 首先index.php中设置为: <?php define('APP_DEBUG', true);//设置为调试模式 require '../ThinkPHP/ThinkPHP.php';//设置入口文件 ini_set("session.save_handler", "user");//设置PHP的SESSION由用户定义 在config

ThinkPHP自定义Redis处理SESSION的实现方法_php实例

本文实例讲述了ThinkPHP自定义Redis处理SESSION的实现方法.分享给大家供大家参考,具体如下: 日常中我们都会使用到session来保存用户登录的信息,常用的session的保存方式有:文件保存(默认).数据库保存.Redis保存.memcached等.这里主要记录一下在用ThinkPHP处理session用Redis来保存session的用法. 1.在配置项中定义: 'SESSION_TYPE' => 'Redis', //session保存类型 'SESSION_PREFIX'

ThinkPHP自动填充实现无限级分类的方法_php实例

本文实例展示了ThinkPHP自动填充实现无限级分类的方法,是ThinkPHP常用功能之一,非常具有实用价值.现将完整实例分享给大家,供大家参考.具体实现步骤如下: 表aoli_cate如下图所示: 一.action部分: aoli/Home/Lib/Action/CataAction.class.php文件如下: <?php class CateAction extends Action{ function index(){ $cate=M('cate'); $list=$cate->fie

ThinkPHP查询返回简单字段数组的方法_php实例

本文实例讲述了ThinkPHP查询返回简单字段数组的方法,是ThinkPHP程序设计中一个很实用的功能.具体方法如下: 通常来说使用select语句.返回的都是结构较复杂的字段数组.如以下是一个简单的查询: $map['parentid'] = $id; $sub_ids = D('Category')->where($map)->field("catid")->select(); 查询后,得到的结果是: [{"catid":"23&qu

让ThinkPHP支持大小写url地址访问的方法_php实例

本文实例讲述了让thinkphp支持大小写url地址访问的方法.分享给大家供大家参考.具体实现方法如下: 通常ThinkPHP默认是区别大小写url的,这种也是与linux系统一样在小写url是两个不同的名字,但我们使用windows习惯了对于大小写都认为一样的,所以还是要根据用户习惯来处理问题,下面我们一起来看问题解决方法. 在配置文件中开启了thinkphp的大小写识别功能,使链接大小写都可以正常访问: 'URL_CASE_INSENSITIVE' =>true 文件命名都是规范的,但是在模

ThinkPHP和UCenter接口冲突的解决方法_php实例

本文分析了ThinkPHP和UCenter接口冲突的解决方法.分享给大家供大家参考,具体如下: 1.引出问题: 在UCenter中存在db和base两个类,恰巧这两个类也存在于ThinkPHP中,因此出现问题是必然的事情. db类:uc_client/lib/db.class.php base类:uc_client/model/base.php 2.问题解决方法: 只要消除"重名"即可解决,因此选择更改UCenter中的名称. 3.实际操作方法: db类: 更改db.class.php

Thinkphp中数据按分类嵌套循环实现方法_php实例

本文实例讲述了Thinkphp中数据按分类嵌套循环实现方法.分享给大家供大家参考.具体实现方法如下: 做thinkphp时要用到循环里面嵌套循环的,并第二个循环是和外面的有关联的. thinkphp官网给出的文档为: 复制代码 代码如下: <volist name="list" id="vo">      <volist name="vo['sub']" id="sub">          {$sub