A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马小奇 中级黑马   /  2017-11-18 19:25  /  1475 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

六、为商品增加拓展分类
1、商品拓展分类的作用就是为了是用户快速的找到自己想要的商品,所以可以为一件商品增加多种分类。比如苹果耳机,可以分类为手机、手机配件、耳机等。这都可以通过拓展分类来实现。
2、首先为拓展分类创建一张单独的表,因为有些商品有很多分类而有些商品只有一个分类,如果在商品表增加字段,由于商品表数据较多,查询起来会降低查询速度,而查询分类少的商品时,字段为空的内容也会被查询,就造成了资源的浪费,所以可以创建一个单独的表来保存拓展分类的信息。
3、在模板文件中增加一个新的提交表单,名字为拓展分类,可以将模板之前的表单复制粘贴过来,然后修改名字,将必选选项的星号*去掉。因为一个商品可以有多个拓展分类,所以应该增加一个按钮,点击按钮时增加一个拓展分类的选择框。而按钮必须绑定事件才能触发,所以应该在模板文件中引入juqery代码,然后绑定点击事件,事件为增加下一个元素。
4、在数据入库时发现,字段列表中要求有商品ID的字段,而商品ID只有在商品提交之后才会生成,所以应该在模型中添加钩子后置函数,用来获取入库以后的商品ID,获取之后进行验证,通过验证将数据写入数据库。
5、数据入库完成后,应该完成列表首页的展示,在控制器中调用方法来获取商品的数据,然后在模型中完善这个方法。在查询数据的时候,应该避免获取到已下架的商品。所以模型中应该增加一个判断,isdel字段为0时表示已下架,所以在编写SQL语句的时候,应该增加where子句进行判断。
6、然后将商品模板复制粘贴为列表显示的模板文件,继承模板文件后,修改其中的资源地址为__PUBLIC_ADMIN__前缀,然后显示商品列表。地址为index
七、分页显示出商品信息
1、首先确定TP中分页的步骤。定义每页显示的数据条数、获取到总数据、调用TP中的方法来获取分页导航数据、然后将导航数据赋值给模板、获取当前页码并根据页码和显示的条数来计算偏移量。
2、确定分页步骤之后,在模型中增加相应的方法来实现分页。定义一个变量来确定每页显示的数据条数,由于前期数据较少所以显示的条数也控制少一点。然后调用count方法来获取数据,在获取数据时要主注意,不能在列表中显示已下架的商品,所以编写SQL语句时应该增加一个where子句进行判断,即isdel字段不能等于0。因为数据是直接在模板文件循环遍历出来的,所以显示数据这一步暂时无法完成。然后通过get提交的数据确定当前的页码,然后调用wherepageselect方法的连贯操作来获取具体的数据。方法最后返回数据时,应该将数据和分页的导航数据都返回给方法。
3、方法完成后在模板中将分页信息显示出来,然后将volist标签的名字改为与方法返回值中的变量名一致。通过index页面查看后完成,分页的样式可以通过后期的修改。
八、商品列表搜索功能
1、在商品列表的显示中,列表上方有搜索功能,应该将其完善。搜索有分类搜索、是否上下架搜索、是否新品热销搜索和关键字搜索,应该分几种情况进行完善。
2、首先完善通过分类搜索,首先调用模型来获取数据,然后在模板将数据显示出来。在通过分类搜索时,搜索顶级分类时,其分类下的所有子分类也应该被显示出来。所以应该在模型中添加方法来获取子分类的ID并将其格式化。测试发现,在每一次搜索时会显示出错误的分类信息,原因是之前获取数据时,将分类信息设置为了静态的变量,所以每次调用时数据不会被清空,导致了显示错误的分类信息。所以应该在之前的获取分类的方法中增加一个判断,同时给方法增加一个参数,默认为true,方法自调用时不执行判断就不会重置变量,在搜索时调用给定参数为false,将数据重置。完成后分类列表显示无异常。
3、然后编写搜索时需要的SQL语句,编写过程中最重要的就是where子句的编写。在通过分类查询时,拓展分类下的商品也应该被搜索出来,所以在编写时也要考虑拓展分类的问题。
4、首先获取通过get提交的分类ID并获取到下面的所有子分类,将分类ID和子分类ID写入到数组中,并通过imploed方法,以逗号为炸开点将其转化为字符串格式。然后通过连贯操作获取到拓展分类下的商品ID,再将得到的数据通过imploed方法转换为字符串。然后拼接where子句,判断是否有拓展分类,如果有应该将拓展分类的ID也加入where子句中进行查询。测试后通过。
5、通过推荐状态进行搜索。在地址栏中发现推荐状态的字段信息为intro_type,所以可以通过这个值来判断搜索时选择的类型,并且限制只能通过这三种状态进行搜索并拼接where子句。
6、通过上下架状态进行搜索,在模板文件中找到上下架的value值并修改,通过get方法获取到提交过来的value值来进行where子句的拼接,然后组织SQL语句。
7、通过关键词搜索。在地址栏中找到关键字搜索提交的字段信息为keyword,然后通过get提交的数据进行where子句的拼接,然后组织SQL语句。
8、在搜索功能完成后,进入index页面测试,测试后发现,搜索完成后,无法显示用户搜索的内容,使用户可能不知道自己搜索的内容,所以要在搜索后,将用户搜索的内容固定在搜索框内。所以要在模板中通过eq标签增加判断,当通过get提交过来的数据相同时,相同的数据被选中。

4 个回复

倒序浏览
沙发沙发
回复 使用道具 举报
能不能给我一份完整的文档
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
6666666666666666666666666
回复 使用道具 举报
黑马南京 来自手机 初级黑马 2017-11-28 10:23:27
报纸
好厉害呀好厉害
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马