discuz中的ct调用到底如何写呢
init();$data = $query = C::t('#portal_category')->fetch_all($catid);while($value=$this->fetch_array($data)){ $data[]=$value; }print_r($data);?>
下面是提示的错误
回复讨论(解决方案)
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 "";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 "";print_r($res);echo "";
上述方法,当fetch_all(1)里面方数字的时候能打印出来,但是只是打出一条数据
我试着打出所有的数据,所以用了fetch_all( $catid)
但打印结果,只是出来一个Array( );
不知哪有问题,
代码如下
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吧,