public function add() { //1 实例化模型 $catModel = D('category'); //接受POST,新增数据 if (IS_POST) { //2 获取数据 $catModel->create(); //3 插入数据 if ($catModel->add()) { $this->success('分类增加成功', U('lst')); //更新缓存 $data = $catModel->select(); $catList = unlimited($data); session('catList', $catList); exit; } else { $this->error('分类增加失败,错误:' . $catModel->getError()); } } //分配数据,显示模板 $this->assign('catList', session('catList')); $this->display('cat_add'); }
/** * @param integer $stop_id [禁止出现的id,默认为0,显示所有] * @param integer $parent_id [父类id] * @param integer $level [等级] * @return [type] [分类完成的数据] */ function unlimited($data, $stop_id = 0, $parent_id = 0, $level = 0) { //1 定义静态数组,保存在递归中获取的分级的数据 static $catList = array(); //2 循环数组 // 获取第一个父级分类的id,与所有分类的parent_id做判断,相同者存入$catList foreach ($data as $k => $v) { if ($parent_id == $v['parent_id'] && $v['id'] != $stop_id) { //将level元素存入$catList本身,当成分隔的依据 $v['level'] = $level; //将符合条件的记录存入$catList $catList[] = $v; //删除已经取出的数据 unset($data[$k]); //递归点,每当查到一个顶级元素,就寻找它的下级 unlimited($data, $stop_id, $v['id'], $level + 1); } } //返回数据 return $catList; }
public function add() { //1 实例化模型 $goodsModel = D('goods'); /*****************插入(新增)操作*****************/ if (IS_POST) { //2 获取提交的数据 if ($data = $goodsModel->create(I('post.'), 1)) { //插入数据 if ($goodsModel->add($data)) { $this->success('商品添加成功!', U('lst')); exit; } else { $this->error('商品添加失败,错误:' . $goodsModel->getError()); } } else { //获取数据失败 $this->error('获取数据商品信息失败,错误信息:' . $goodsModel->getError()); } } /*****************获取分类信息*****************/ //分类信息,判断是否存在session,catList if (!session('?catList')) { $data = $goodsModel->select(); //获取全部记录 $catList = unlimited($data); //调用无限极分类 session('catList', $catList); //缓存数据 } /***********获取商品类型***********/ if (!session('?typeList')) { //获取数据 $typeList = M('goods_type')->select(); //缓存 session('typeList', $typeList); } //分配分类信息到模板 $this->assign('catList', session('catList')); $this->assign('typeList', session('typeList')); $this->display('goodsadd'); }