4,249
社区成员




<?
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);
}
}
<?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();
}
}