摘要:當你在數據庫中存儲了三級以上的數據樹時,你想把它顯示在前端時,你會怎么做,下面是我在工作項目時遇到的一些思路此項目是開發的。注文章來源雨中笑記錄實習期遇到的問題與心得,轉載請申明原文
當你在數據庫中存儲了三級以上的數據樹時,你想把它顯示在前端時,你會怎么做,下面是我在工作項目時遇到的一些思路(此項目是thinkphp5開發的)。
數據庫:
demand_id是各分類的ID值,parent_id是用來做樹的分類,第一級的parent_id的值是 0 ,第二級的parent_id值是其父級的demand_id值,第三級的parent_id值是其第二級父級的demand_id值,第四、第五同樣往后推...
Model:
//獲取三級分類 public function getTree() { $fields = "demand_id,demand_name,parent_id,sort,status"; $result = Db::name("demand_class")->field($fields)->where(array("parent_id" => 0, "status" => "Y"))->order("parent_id asc, sort asc")->select(); if (!$result) return false; $rs = array(); //頂級不顯示圖片 ,二級不顯示 foreach ($result as $v) { $cate_id = $v["demand_id"]; $rs[$cate_id]["cate_id"] = $v["demand_id"]; $rs[$cate_id]["cate_name"] = $v["demand_name"]; $data = $this->_son_cate($v); if ($data) { foreach ($data as $key => $val) { // if (!isset($val["child"])) // continue; //是否有字分類 //去除二級中圖片 //unset($val["url"]); $rs[$cate_id]["chilid"][] = $val; } } } foreach ($rs as $vv) { $info[] = $vv; } return $info; }
private function _son_cate($pcate_info) { $pcate_id = $pcate_info["demand_id"]; $fields = "demand_id,demand_name,parent_id,sort,status"; $result = Db::name("demand_class")->field($fields)->where(array("parent_id" => $pcate_id))->order("parent_id asc,sort asc")->select(); if (!$result) return false; foreach ($result as $v) { $cate_id = $v["demand_id"]; $rs[$cate_id]["cate_id"] = $v["demand_id"]; $rs[$cate_id]["cate_name"] = $v["demand_name"]; $data = $this->_son_cate($v); if ($data) { foreach ($data as $value) { if (!is_file(BASE_UPLOAD_PATH . "/" . ATTACH_COMMON . "/category-pic-" . $value["cate_id"] . ".jpg")) { $value["image"] = PHONE_TEMPLATES . "/" . images . "/" . "default_goods_image.gif"; } else { $value["image"] = UPLOAD_SITE_URL . "/" . ATTACH_COMMON . "/category-pic-" . $value["cate_id"] . ".jpg"; } // $value["url"] = htmlspecialchars_decode($value["gc_link"]); $rs[$cate_id]["child"][] = $value; } } } return $rs; }
Contraller:
public function edit() { //分類 $md_goods_class = Model("demand_class"); $denamd_class = $md_goods_class->getTree(); $this->assign("denamd_class", $denamd_class); return $this->fetch("demand_from"); }
前端 demand_from.html
我之前遇到的問題:
當我在前端看的時候發現cate_id 這個字段,我去它的控制器中查找,找到了它使用的demand_class數據表,然后去數據表里看發現表里并沒有這個字段,通過我認真的查找我發現這個字段是從模型Model中定義來的。
注:文章來源雨中笑記錄實習期遇到的問題與心得,轉載請申明原文
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/97255.html
摘要:而由于沒有后端的數據支持,所有的數據都在表格中展示,所以需要將表格中的數據轉為數據,再通過讀取,然后用模板引擎渲染到頁面上。 showImg(https://segmentfault.com/img/bV3N8M?w=1574&h=692);如圖所示,是一個動態的表格,內容數量不定第一層分類是專業大類的分類,第二層分類的國家的分類,第三層分類是具體專業名的分類(就是不同的色塊欄),甚至...
摘要:而由于沒有后端的數據支持,所有的數據都在表格中展示,所以需要將表格中的數據轉為數據,再通過讀取,然后用模板引擎渲染到頁面上。 showImg(https://segmentfault.com/img/bV3N8M?w=1574&h=692);如圖所示,是一個動態的表格,內容數量不定第一層分類是專業大類的分類,第二層分類的國家的分類,第三層分類是具體專業名的分類(就是不同的色塊欄),甚至...
閱讀 2137·2023-04-26 00:23
閱讀 807·2021-09-08 09:45
閱讀 2435·2019-08-28 18:20
閱讀 2542·2019-08-26 13:51
閱讀 1595·2019-08-26 10:32
閱讀 1392·2019-08-26 10:24
閱讀 2027·2019-08-26 10:23
閱讀 2196·2019-08-23 18:10