目录
一、商品管理
1、建表的考虑
goods_thumb表示小图,100*100的,在列表页面中使用
商品的中图goods_img在商品的详情页面中使用。
使用is_best表示是一个精品,使用is_new是新品 is_hot是热卖
建立商品表:
create table it_goods(
id smallint unsigned primary key auto_increment,
goods_name varchar(32) not null comment '商品的名称',
cat_id smallint unsigned not null comment '商品所属栏目的id',
goods_type tinyint unsigned not null comment '商品类型的id',
goods_sn varchar(32) not null comment '商品的货号',
shop_price decimal(9,2) not null default 0.0 comment '商品的本店价格',
market_price decimal(9,2) not null default 0.0 comment '商品的市场价格',
goods_number smallint not null default 0 comment '商品的库存',
seotitle varchar(32) not null default '' comment 'seo标题,利用搜索引擎的',
goods_desc varchar(128) not null default '' comment '商品的描述',
goods_ori varchar(64) not null default '' comment '商品的原图',
goods_thumb varchar(64) not null default '' comment '商品的小图',
goods_img varchar(64) not null default '' comment '商品的中图',
is_best tinyint not null default 0 comment '是否是精品,1表示为精品,0表示不是',
is_new tinyint not null default 0 comment '是否是新品,1表示为新品,0表示不是',
is_hot tinyint not null default 0 comment '是否是热卖,1表示为热卖,0表示不是',
is_sale tinyint not null default 0 comment '是否上架,1表示为上架销售,0表示不是',
add_time int not null default 0 comment '商品的添加时间'
)engine myisam charset utf8;
需要建表完成属性的保存,如何建立表的字段
goods_id(商品的id) attr_id(属性的id) attr_value(属性的值)
比如存储:
goods_id attr_id attr_value
1 1 黑白金
2 5
#商品属性表
create table it_goods_attr(
id smallint unsigned primary key auto_increment,
goods_id smallint not null comment '商品的id',
attr_id tinyint unsigned not null comment '存储属性的id',
attr_value varchar(10) not null comment '属性的值'
)engine myisam charset utf8;
2、添加商品
(1)在goods模块下面新建一个goods的控制器,并添加add方法,并拷贝对应的模板页面。
(2)修改模板页面里面添加商品的表单。主要是添加商品属性的选项卡
第一步:添加商品属性的标签
第二步:添加商品属性的具体的内容
第三步:修改charea()函数
完成表单其他信息的修改,要注意表单里面的名称要和表中的字段名称一致。
(3)在控制器中,完成添加商品的代码
(4)新建一个goods模型,添加_before_insert钩子函数
钩子函数有6个
_before_insert(&$data,$option)是$model->add()函数触发_before_insert和_after_insert函数。
_after_insert($data,$option)
_before_update()
_after_update()
_before_delete()
_after_delete()
3、上传图片生成缩略图
在goods的模型里面添加_before_insert函数,该函数完成图片上传。
上传成功后,返回的信息。
4、封装上传函数,并生成缩略图。
自定义函数可以在common目录下面的common目录下面新建一个function.php文件。在该文件中定义的函数,可以在控制器和模型里面直接使用。
最后,模型里面_before_insert的代码
5、商品信息入库
在goods模型中添加数据验证的信息
控制器入库的代码:
6、取出商品属性
(1)在goods控制器中add方法中取出商品的类型
表单里面有输入框,有下拉列表。
如果是唯一属性,并且是手工录入,则生成一个输入框
如果是唯一属性,并且是列表选择,则生成一个下拉列表
如果是单选属性,并且是手工录入,则生成一个输入框
如果是单选属性,并且是列表选择,则生成一个下拉列表,并前面添加 “[+]”表示自己能够复制。
attr_type=0表示唯一属性 attr_type=1表示单选属性
attr_input_type=0表示手工录入,attr_input_type=1表示列表选择
在add.html页面中使用ajax来完成:
根据ajax完成在控制器里面添加showttr方法。
showattr.html页面里面内容:
7、商品属性入库
入 it_goods_attr表;
商品属性入库是在商品入库后再执行的。因此要写到 _after_insert钩子函数中
分析属性提交过来的数据
8、完成商品列表取出