discuz中的ct调用到底如何写呢

php中文网
发布: 2016-06-23 13:48:33
原创
1329人浏览过

下面这段代码是由DB的写法改为Ct 的写法,但是结果出错,也不知哪里写的不对

<?php/** *      [Discuz!] (C)2001-2099 Comsenz Inc. *      This is NOT a freeware, use is subject to license terms * *      $Id: forum.php 33828 2013-08-20 02:29:32Z nemohou $ */define('APPTYPEID', 88);define('CURSCRIPT', 'test');require './source/class/class_core.php';require './source/function/function_forum.php';C::app()->init();$data = $query = C::t('#portal_category')->fetch_all($catid);while($value=$this->fetch_array($data)){	$data[]=$value;	}print_r($data);?>
登录后复制


下面是提示的错误

知网AI智能写作
知网AI智能写作

知网AI智能写作,写文档、写报告如此简单

知网AI智能写作 38
查看详情 知网AI智能写作

回复讨论(解决方案)

C::t('#portal_category'),不要加#号,它会认为是插件目录下的表模型,才会报错,提示你没有那个表模型
如:C::t('#qqconnect#common_member_qqconnect')->insert($insert_arr);
discuz会自动去目录\source\plugin\qqconnect\table下找table_common_member_qqconnect.php这个表模型文件

fetch_all($catid),$catid为数组,当也可是是数字
你的while也是不需要的,所以,你可以改成如下试试:

//$catid=1;//$catid=array(1,2,3);$res = C::t('portal_category')->fetch_all($catid);echo "<pre class="brush:php;toolbar:false;">";print_r($res);echo "
登录后复制
";

C::t('#portal_category'),不要加#号,它会认为是插件目录下的表模型,才会报错,提示你没有那个表模型
如:C::t('#qqconnect#common_member_qqconnect')->insert($insert_arr);
discuz会自动去目录\source\plugin\qqconnect\table下找table_common_member_qqconnect.php这个表模型文件

fetch_all($catid),$catid为数组,当也可是是数字
你的while也是不需要的,所以,你可以改成如下试试:

//$catid=1;//$catid=array(1,2,3);$res = C::t('portal_category')->fetch_all($catid);echo "<pre class="brush:php;toolbar:false;">";print_r($res);echo "
登录后复制
";



上述方法,当fetch_all(1)里面方数字的时候能打印出来,但是只是打出一条数据
我试着打出所有的数据,所以用了fetch_all( $catid)
但打印结果,只是出来一个Array( );
不知哪有问题,
代码如下
<?php/** *      [Discuz!] (C)2001-2099 Comsenz Inc. *      This is NOT a freeware, use is subject to license terms * *      $Id: forum.php 33828 2013-08-20 02:29:32Z nemohou $ */define('APPTYPEID', 88);define('CURSCRIPT', 'test');require './source/class/class_core.php';require './source/function/function_forum.php';C::app()->init();$data = C::t('portal_category')->fetch_all($catid);print_r($data);?>
登录后复制

呃...之前告诉过你,该表模型里面没有查询所有数据的方法,fetch和fetch_all都必须要一个条件,条件就是主键catid,所以用DB来查询所有数据,当然你也可以在该表模型里自己写一个查询所有的方法
如:打开\source\class\table\table_portal_category.php,在类中(table_portal_category)添加如下方法

public function my_fetch_all(){		return DB::fetch_all("SELECT * FROM %t",array($this->_table));	}
登录后复制

调用:$data = C::t('portal_category')->my_fetch_all();//不需要参数
不过,我还是习惯用DB直接操作,比较灵活

呃...之前告诉过你,该表模型里面没有查询所有数据的方法,fetch和fetch_all都必须要一个条件,条件就是主键catid,所以用DB来查询所有数据,当然你也可以在该表模型里自己写一个查询所有的方法
如:打开\source\class\table\table_portal_category.php,在类中(table_portal_category)添加如下方法

public function my_fetch_all(){		return DB::fetch_all("SELECT * FROM %t",array($this->_table));	}
登录后复制

调用:$data = C::t('portal_category')->my_fetch_all();//不需要参数
不过,我还是习惯用DB直接操作,比较灵活


那我也用DB吧,
相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号