摘要:當你在數(shù)據(jù)庫中存儲了三級以上的數(shù)據(jù)樹時,你想把它顯示在前端時,你會怎么做,下面是我在工作項目時遇到的一些思路此項目是開發(fā)的。注文章來源雨中笑記錄實習期遇到的問題與心得,轉載請申明原文
當你在數(shù)據(jù)庫中存儲了三級以上的數(shù)據(jù)樹時,你想把它顯示在前端時,你會怎么做,下面是我在工作項目時遇到的一些思路(此項目是thinkphp5開發(fā)的)。
數(shù)據(jù)庫:
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
我之前遇到的問題:
當我在前端看的時候發(fā)現(xiàn)cate_id 這個字段,我去它的控制器中查找,找到了它使用的demand_class數(shù)據(jù)表,然后去數(shù)據(jù)表里看發(fā)現(xiàn)表里并沒有這個字段,通過我認真的查找我發(fā)現(xiàn)這個字段是從模型Model中定義來的。
注:文章來源雨中笑記錄實習期遇到的問題與心得,轉載請申明原文
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29365.html
摘要:而由于沒有后端的數(shù)據(jù)支持,所有的數(shù)據(jù)都在表格中展示,所以需要將表格中的數(shù)據(jù)轉為數(shù)據(jù),再通過讀取,然后用模板引擎渲染到頁面上。 showImg(https://segmentfault.com/img/bV3N8M?w=1574&h=692);如圖所示,是一個動態(tài)的表格,內(nèi)容數(shù)量不定第一層分類是專業(yè)大類的分類,第二層分類的國家的分類,第三層分類是具體專業(yè)名的分類(就是不同的色塊欄),甚至...
摘要:而由于沒有后端的數(shù)據(jù)支持,所有的數(shù)據(jù)都在表格中展示,所以需要將表格中的數(shù)據(jù)轉為數(shù)據(jù),再通過讀取,然后用模板引擎渲染到頁面上。 showImg(https://segmentfault.com/img/bV3N8M?w=1574&h=692);如圖所示,是一個動態(tài)的表格,內(nèi)容數(shù)量不定第一層分類是專業(yè)大類的分類,第二層分類的國家的分類,第三層分類是具體專業(yè)名的分類(就是不同的色塊欄),甚至...
閱讀 3627·2023-04-26 02:32
閱讀 3905·2021-11-23 10:05
閱讀 2291·2021-10-08 10:04
閱讀 2711·2021-09-22 16:06
閱讀 3612·2021-09-22 15:27
閱讀 764·2019-08-30 15:54
閱讀 1698·2019-08-30 13:50
閱讀 2704·2019-08-29 13:56