?? ??(1?)
?? ??
?? ??? ?????:
?? ?? ??? ??? ???? ?? ???? ?? ?? ?? ???? ?? ?? ??? ??? ?? Windows? ? ??? ??? ? ?? ??? ? ??? ??? ??? ?? ? ?? ?? ??? ?????.
public function index(){ $cate=D('cate'); $cateres=$cate->catetree(); $this->assign('cateres',$cateres); $this->display(); }
?? ??? ????? ???? ???? $cateres? catetree() ???? ?????.
catetree() ???? ?? ?? ???? ??? ?? ???? ????.
<?php namespace Admin\Model; use Think\Model; class CateModel extends Model { protected $_validate = array( array('catename','require','管理員名稱不得為空!',1), ); public function catetree(){ $data=$this->order('id desc')->select(); return $this->resort($data); } public function resort($data,$pid=0,$level=0){ static $arr=array(); foreach ($data as $k => $v) { if ($v['pid']==$pid) { $v['level']=$level; $arr[]=$v; $this->resort($data,$v['id'],$level+1); } } return $arr; } }
?? ???? ??? ??? ???????.
catetree ???
? ???? ?????. $this? ??? ???? ???? ID? ???? ???? ?? ?????. return? ?? ??? ?????.
resort method
$data: ??? ???
$pid=0: ??? ???? 0?? ??
$level=0 ?? ??
?? ??? ???? ? ??? ????. ???? ???? ?? foreach? ???? $v['pid']==$pid? ??? ID? ???? ?? $v['level']=$level? ??? ???? ??? ???? ??? ?????. ???? $this->resort($data,$v['id'],$level+1); ??? $data? $data $v['? ????. id']? $pid? ????. $level+1 $level? ?? 1? ???? ?????. ??? ??? ??? ????.
???? ? ??? ???? ???? ????
??? ??? ?? ??? ??? ?????.