删除商品类别的php代码,[PHP] 商品类型规格属性后台管理(代码流程备忘)

实现界面

49780dea27b9ad275d8b2f139dc4350c.png

涉及到四张表,type(商品类型表),type_spec(商品类型规格关联表),attribute(商品属性表),attribute_value(商品属性值表)

新建基控制器BaseController.class.php,向上抽取出来的公用方法

BaseController.class.php

namespace AdminController;useThinkController;class BaseController extendsController {protected $pageSize=1;/**

* 获取分页对象

* @param [type] $count [description]

* @return [type] [description]*/

public function getPager($count){$pager=new CommonLibsMyPage($count,$this->pageSize);return $pager;

}

}

定义基模型文件BaseModel.class.php,继承系统的Model类

BaseModel.class.php

namespace CommonModel;useThinkModel;class BaseModel extendsModel{/**

* 获取分页数据

* @param [type] $pager [description]

* @param array $condition [description]

* @param string $order [description]

* @return [type] [description]*/

public function getPagerResult($pager,$condition=array(),$order=""){if($pager==null){return;

}return $this->where($condition)->limit($pager->firstRow.','.$pager->listRows)->order($order)->select();

}/**

* 获取条数

* @return [type] [description]*/

public function getCount($condition=array()){return $this->where($condition)->count();

}/**

* 添加数据

* @return [type] [description]*/

public function addItem($data){$msg=array();if(!$this->create($data)){$msg['msg']=$this->getError();$msg['status']=false;

}else{$id=$this->add($data);if($id){$msg['status']=true;$msg['id']=$id;

}else{$msg['status']=false;$msg['msg']=$this->getError();

}

}return $msg;

}/**

* 获取单条数据

* @return [type] [description]*/

public function getItem($condition=array()){return $this->where($condition)->find();

}/**

* 获取所有数据

* @return [type] [description]*/

public function getAllResult($condition=array()){return $this->where($condition)->select();

}/**

* 删除数据

* @return [type] [description]*/

public function delItem($condition=array()){if(empty($condition)){return false;

}return $this->where($condition)->delete();

}/**

* 编辑数据

* @return [type] [description]*/

public function setItem($condition=array(),$data){if(empty($condition)){return false;

}$msg=array();if(!$this->create($data)){$msg['msg']=$this->getError();$msg['status']=false;

}else{$id=$this->where($condition)->save($data);$msg['status']=true;$msg['id']=$id;

}return $msg;

}

}

新建类型控制器文件TypeController.class.php

TypeController.class.php

namespace AdminController;useThinkController;/**

* 类型(规格,属性)*/

class TypeController extendsBaseController {private $typeModel;private $specModel;private $attrModel;private $typeId;public function__construct(){

parent::__construct();$this->typeModel=D("Type");$this->specModel=D("Spec");$this->attrModel=D("Attr");

}/**

* 列表

* @return [type] [description]*/

public functionindex(){$nums=$this->typeModel->getCount();$pager=$this->getPager($nums);$typeList=$this->typeModel->getPagerResult($pager,array(),"type_id desc");$pageHtml=$pager->show();$this->assign('typeList',$typeList);$this->assign('pageHtml',$pageHtml);$this->display();

}/**

* 添加类型(添加进4张表 type,type_spec,attribute,attribute_value)

* @return [type] [description]*/

public functionaddType(){if(IS_POST){//添加类型表

$res=$this->typeModel->addTypeItem($_POST);if($res['status']){$this->typeId=$res['id'];//添加属性

if($_POST['attr_value'][0]['name']){$this->addAttrData($_POST['attr_value']);

}$this->success("操作成功!");

}else{$this->error($res['msg']);

}

}else{$specList=$this->specModel->select();$this->assign("specList",$specList);$this->display();

}

}/**

* 添加属性

* @param [type] $data [description]*/

private function addAttrData($data){foreach ($data as $key => $value) {$temp=array();$temp['attr_name']=$value['name'];$temp['attr_values']=$value['value'];$temp['type_id']=$this->typeId;$this->attrModel->addAttrItem($temp);

}return true;

}/**

* 编辑属性

* @param [type] $data [description]*/

private function setAttrData($data){foreach ($data as $key => $value) {$temp=array();$temp['attr_id']=$key;$temp['attr_name']=$value['name'];$temp['attr_values']=$value['value'];$temp['type_id']=$this->typeId;$this->attrModel->setAttrItem($temp);//添加属性

if($key=='new'){$this->addAttrData($value);break;

}

}return true;

}/**

* 编辑类型(添加进4张表 type,type_spec,attribute,attribute_value)

* @return [type] [description]*/

public functioneditType(){$typeId=intval($_GET['typeId']);if(IS_POST){$this->typeId=intval($_POST['type_id']);//编辑类型表

$res=$this->typeModel->editTypeItem($_POST);if($res['status']){//编辑属性

if(!empty($_POST['attr_value'])){$this->setAttrData($_POST['attr_value']);

}$this->success("操作成功!",U("Type/editType",array('typeId'=>$this->typeId)));

}else{$this->error($res['msg']);

}

}else{$typeInfo=$this->typeModel->getItem(array('type_id'=>$typeId));$this->assign("typeInfo",$typeInfo);$specList=$this->specModel->select();$this->assign("specList",$specList);$specTypeList=M("type_spec")->where(array('type_id'=>$typeId))->getField("spec_id",true);$this->assign("specTypeList",$specTypeList);$attrList=$this->attrModel->getAllResult(array('type_id'=>$typeId));$this->assign("attrList",$attrList);$this->display();

}

}

}

新建类型模型文件TypeModel.class.php

TypeModel.class.php

namespace CommonModel;useThinkModel;class TypeModel extendsBaseModel{/**

* 验证规则

* @var array*/

protected $_validate = array(array('type_name','require','类型名称必须!')

);/**

* 添加类型*/

public function addTypeItem($data){$res=$this->addItem($data);//添加类型规格

$typeSpecs=$data['spec_id'];$typeSpecArray=array();foreach ($typeSpecs as $typeSpec) {$temp=array();$temp['type_id']=$res['id'];$temp['spec_id']=$typeSpec;$typeSpecArray[]=$temp;

}

M("type_spec")->addAll($typeSpecArray);return $res;

}/**

* 编辑类型*/

public function editTypeItem($data){$res=$this->setItem(array('type_id'=>$data['type_id']),$data);//编辑类型规格

M("type_spec")->where(array('type_id'=>$data['type_id']))->delete();$typeSpecs=$data['spec_id'];$typeSpecArray=array();foreach ($typeSpecs as $typeSpec) {$temp=array();$temp['type_id']=$data['type_id'];$temp['spec_id']=$typeSpec;$typeSpecArray[]=$temp;

}

M("type_spec")->addAll($typeSpecArray);return $res;

}

}

新建规格模型文件SpecModel.class.php

SpecModel.class.php

namespace CommonModel;useThinkModel;class SpecModel extendsBaseModel{/**

* 验证规则

* @var array*/

protected $_validate = array(array('spec_name','require','规格名称必须!'),

array('spec_sort','number','排序必须是数字!')

);

}

新建属性模型文件AttrModel.class.php

AttrModel.class.php

namespace CommonModel;useThinkModel;class AttrModel extendsBaseModel{protected $tableName="attribute";/**

* 验证规则

* @var array*/

protected $_validate = array(array('attr_name','require','属性名称必须!'),

array('type_id','require','类型id必须!'),

array('attr_values','require','属性值必须!')

);/**

* 添加属性*/

public function addAttrItem($data){$res=$this->addItem($data);//添加属性值

$attrValues=explode("|", $data['attr_values']);$attrValueArray=array();foreach ($attrValues as $attrValue) {$temp=array();$temp['attr_id']=$res['id'];$temp['attr_value']=$attrValue;$attrValueArray[]=$temp;

}

M("attribute_value")->addAll($attrValueArray);

}/**

* 编辑属性*/

public function setAttrItem($data){$res=$this->setItem(array('attr_id'=>$data['attr_id']),$data);//编辑属性值

M("attribute_value")->where(array('attr_id'=>$data['attr_id']))->delete();$attrValues=explode("|", $data['attr_values']);$attrValueArray=array();foreach ($attrValues as $attrValue) {if(!$attrValue){break;

}$temp=array();$temp['attr_id']=$data['attr_id'];$temp['attr_value']=$attrValue;$attrValueArray[]=$temp;

}

M("attribute_value")->addAll($attrValueArray);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值