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}"> ...
這樣,參數就不會產生沖突了,問題解決,歡迎拍磚。
新聞熱點
疑難解答