ThinkPHP 加载自定义Model的一个问题,急求答案,调试一晚上了

yuanxing008 2016-01-12 11:31:13
控制器调用自定义model的一个方法,报Think\Model:getList方法不存在 错误
感觉是自定义model没有加载成功
CategoryModel.class.php
<?
namespace Home\Model;

Class CategoryModel extends Model{

/*获取分类列表*/
public function getList(){
$data=$this->select();
$data==nul&&$data=array();
var_dump($this->tree($data));

return $this->tree($data);
}
/*递归*/
private function tree(&$data,$pid=0,$deep=0,$max_deep=3){
$result=array(); //当前子分类列表
foreach($data as $row){
if($row['pid']==$pid){
//判断深度是否达到最大深度
if($deep<$max_deep-1){
//递归查找
$row['child']=$this->tree($data,$row['cid'],$deep+1,$max_deep);
}
$result[]=$row;
}
}
return $result;
}

//向上查找父分类获取父id
public function getPidList($cid){
$pcat=array();
while($cid){
$cat=$this->field('cid,name,pid')->where("cid=$cid")->find();
$pcat[]=array(
'cid'=>$cat['cid'],
'cname'=>$cat['name'],
);
$cid=$cat['pid'];
}
return array_reverse($pcat);
}

}

IndexController.class.php

<?php
namespace Home\Controller;
use Think\Controller;

Class IndexController extends CommonController {
public function index(){
//获得分类列表
//var_dump(D('Category')->getList());

$data['cate'] = D('Category')->getList();
//echo "<pre>";
//var_dump($data);

//获得推荐商品
$data['best']=M('goods')->field(
'gid,gname,price,pic,stock')->
where(array(
'is_best'=>'yes',
'status'=>'yes',
'recycle'=>'no',
))->limit(15)->select();


//获得app类
$data['app']=M('goods')->field(
'gid,gname,price,pic,stock')->
where(array(
'is_best'=>'yes',
'status'=>'yes',
'recycle'=>'no',
))->limit(15)->select();

//业务模块
$data['designer']=M('designer')->limit(5)->select();

$data['server']=M('server')->limit(4)->select();

$this->assign($data);
$this->display();
}

//前台商品列表页
public function find(){
//获得请求参数
$cid=I('get.cid',0,'int');
//利用过滤器获得商品
$data=D('Goods')->getByFilter(
//待查询字段
'gid,gname,price,pic',
//查询条件(不在回收站中,已经上架,属于指定分类)
array('recycle'=>'no','status'=>'yes','cid'=>$cid)
);
var_dump($data);
//获得分类名
$data['cname']=M('category')->where("cid=$cid")->getField('cname');
//视图
$data['cid']=$cid;
$this->assign($data);
$this->display();
}

//前台商品信息页
public function goods(){
$gid=I('get.gid',0,'int');
//得到商品信息
$data['goods']=M('goods')->field(
'cid,gname,price,pic,description,stock,identifier'
)->where(array( //根据gid取得商品,并且该商品未被删除,已上架
'gid'=>$gid,'recycle'=>'no','status'=>'yes',
))->find();
if(empty($data['goods'])){ //判断商品是否存在
$this->error('该商品不存在或者已经下架了喔');
return;
}
$cid=$data['goods']['cid'];//取得该商品所在分类,利用它完成面包屑导航
//取出商品分类信息
$data['pcats']=D('category')->getPidList($cid);
//取出商品属性信息
$data['attr']=D('goodsAttr')->getData($cid,$gid);
//视图
$data['gid']=$gid;
$this->assign($data);
$this->display();
}

public function add(){
$rebook=M('rebook');
$rebook->create();
if($rebook->add()){
echo "留言添加成功";
$this->redirect('index');
}else{
$this->error('留言添加失败,请确保你输入的格式正确并且完整');
}
}


public function designer(){
$Id=I("get.Id",0,"int");
$data['designer']=M('designer')->where("Id=$Id")->select($Id);
$this->assign($data);
$this->display();
}



}

调用categroyModel的getList()方法就报错,不知道该怎么解决 求各位帮忙,在线等
...全文
843 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Charles杨 2016-01-25
  • 打赏
  • 举报
回复
引用 16 楼 yuanxing008 的回复:
[quote=引用 15 楼 qq_30333225 的回复:]
[quote=引用 8 楼 yuanxing008 的回复:]
[quote=引用 6 楼 xuzuning 的回复:]
你的 CategoryModel 类所在文件名是怎么写的?
放到了哪个目录下?

CategoryModel .class.php 在Home\Model\下[/quote]
你放到这里肯定加载不到
[/quote]那放到哪里 \Model下面吗[/quote]

看看你的目录结构是这样的吗?
Charles杨 2016-01-25
  • 打赏
  • 举报
回复
引用 16 楼 yuanxing008 的回复:
[quote=引用 15 楼 qq_30333225 的回复:] [quote=引用 8 楼 yuanxing008 的回复:] [quote=引用 6 楼 xuzuning 的回复:] 你的 CategoryModel 类所在文件名是怎么写的? 放到了哪个目录下?
CategoryModel .class.php 在Home\Model\下[/quote] 你放到这里肯定加载不到 [/quote]那放到哪里 \Model下面吗[/quote] 要放在Lib文件夹下
yuanxing008 2016-01-23
  • 打赏
  • 举报
回复
引用 15 楼 qq_30333225 的回复:
[quote=引用 8 楼 yuanxing008 的回复:] [quote=引用 6 楼 xuzuning 的回复:] 你的 CategoryModel 类所在文件名是怎么写的? 放到了哪个目录下?
CategoryModel .class.php 在Home\Model\下[/quote] 你放到这里肯定加载不到 [/quote]那放到哪里 \Model下面吗
Charles杨 2016-01-18
  • 打赏
  • 举报
回复
引用 8 楼 yuanxing008 的回复:
[quote=引用 6 楼 xuzuning 的回复:] 你的 CategoryModel 类所在文件名是怎么写的? 放到了哪个目录下?
CategoryModel .class.php 在Home\Model\下[/quote] 你放到这里肯定加载不到
Charles杨 2016-01-18
  • 打赏
  • 举报
回复
那就看你这CategoryModel.class.php位置放对着吗,要放在固定的文件夹下
yuanxing008 2016-01-18
  • 打赏
  • 举报
回复
还是没有解决啊 谁知道是什么情况
yuanxing008 2016-01-13
  • 打赏
  • 举报
回复
引用 10 楼 zy205817 的回复:
model下的方法没有被调用,检查下命名空间。
是检查代码头部的namespace吗?还是检查哪里 如果是代码头部的命名空间的话 代码贴出来了 你能看到有什么问题吗
Charles杨 2016-01-13
  • 打赏
  • 举报
回复
那你就逐点排查错误
码无边 2016-01-13
  • 打赏
  • 举报
回复
model下的方法没有被调用,检查下命名空间。
yuanxing008 2016-01-13
  • 打赏
  • 举报
回复
引用 7 楼 gll19920817 的回复:
use Think\Model;
试过了 没用
yuanxing008 2016-01-13
  • 打赏
  • 举报
回复
引用 6 楼 xuzuning 的回复:
你的 CategoryModel 类所在文件名是怎么写的? 放到了哪个目录下?
CategoryModel .class.php 在Home\Model\下
lpray 2016-01-13
  • 打赏
  • 举报
回复
use Think\Model;
yuanxing008 2016-01-13
  • 打赏
  • 举报
回复
引用 2 楼 wander_wind 的回复:
把D()里面的首字母大写试试,记得碰到过同样问题,还去改框架了
是大写的啊 大小写试过了 不行
xuzuning 2016-01-13
  • 打赏
  • 举报
回复
你的 CategoryModel 类所在文件名是怎么写的? 放到了哪个目录下?
yuanxing008 2016-01-13
  • 打赏
  • 举报
回复
引用 4 楼 qq_30333225 的回复:
那你就逐点排查错误
大小写敏感,数据表,框架版本,都排查了,就是无法加载到自定义Model
智商众筹 2016-01-13
  • 打赏
  • 举报
回复
把D()里面的首字母大写试试,记得碰到过同样问题,还去改框架了
yuanxing008 2016-01-12
  • 打赏
  • 举报
回复
错误位置 FILE: G:\wamp\www\test\ThinkPHP\Library\Think\Model.class.php  LINE: 226 TRACE #0 G:\wamp\www\test\ThinkPHP\Library\Think\Model.class.php(226): E('Think\Model:get...') #1 G:\wamp\www\test\Application\Home\Controller\IndexController.class.php(9): Think\Model->__call('getList', Array) #2 G:\wamp\www\test\Application\Home\Controller\IndexController.class.php(9): Think\Model->getList() #3 [internal function]: Home\Controller\IndexController->index() #4 G:\wamp\www\test\ThinkPHP\Library\Think\App.class.php(162): ReflectionMethod->invoke(Object(Home\Controller\IndexController)) #5 G:\wamp\www\test\ThinkPHP\Library\Think\App.class.php(200): Think\App::exec() #6 G:\wamp\www\test\ThinkPHP\Library\Think\Think.class.php(120): Think\App::run() #7 G:\wamp\www\test\ThinkPHP\ThinkPHP.php(96): Think\Think::start() #8 G:\wamp\www\test\index.php(24): require('G:\wamp\www\tes...') #9 {main} 这是报错信息

4,251

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧