Ecshop商品详情一会显示一会不显示,很让人蛋疼的一个诡异问题。
Ecshop二次开发的时候碰到个奇怪的问题,那就是在购买商品提交订单之后查看商品详情页面发现商品的详情参数都不见了,只剩下商品名称,其他的商品货号,上架时间,本店售价都不显示了。然后进后台管理中心清空缓存后又恢复正常,再次提交订单又不显示了,无限纠结外加蛋疼中。
初步预测原因出在goods.dwt或者flow.dwt文件中。只能挨着试试了,恢复默认模板之后发现与flow.dwt无关,而回复goods.dwt的默认模板之后再次提交订单发现正常无问题了。然后就从goods.dwt开刀。经过反复测试,最终发现问题出在自己左侧自定义的top商品和hot商品这里。经过仔细思考之后发觉最可能的原因就是这部分的代码和中间商品详情部分的代码冲突了。
果然如此,其实是左侧的代码中使用的smarty实例化的对象中,item都使用了goods这个参数,结果可想而知,左侧是一个数组,右侧是一个实际数据,当然也就无法输出了。解决方法很简单,那就修改左侧的item名称即可。例如这里我的修改方法为,将
<ul class="topsale-list" id="c101"> <!-- {foreach name=best_goods from=$best_goods item=goods}--> {if $smarty.foreach.best_goods.index <= 4} <li> <a href="{$goods.url}"> ...
修改为
<ul class="topsale-list" id="c101"> <!-- {foreach name=best_goods from=$best_goods item=bgoods}--> {if $smarty.foreach.best_goods.index <= 4} <li> <a href="{$bgoods.url}"> ...
这样,参数就不会产生冲突了,问题解决,欢迎拍砖。
新闻热点
疑难解答