2013-09-28 48 views
0

這是我的功能。使用Yii fw。無限循環問題

public function generateMenu($type, $class = "", $curl, $parent = 0) 
{ 
    switch ($type) { 
     case 1: 
      //LEFT MENU 
      $html = "<ul $class>"; 
      if ($parent == 0 && $type == 0) 
       $html .= '<li> 
           <div class="sidebar-toggler hidden-phone"></div> 
          </li>'; 
      $criteria  = new CDbCriteria(); 
      $criteria->order = "sort ASC"; 
      $criteria->compare("menuType", $type); 
      $criteria->compare("parent", 0); 
      $bu  = Yii::app()->baseUrl; 
      $results = AdminMenu::model()->findAll($criteria); 
      if ($results) { 
       $i = 1; 
       foreach ($results as $result) { 
        $liClass = ""; 
        if ($i == 1 && $parent == 0) 
         $liClass = "start"; 
        else if ($i == count($results) && $parent == 0) 
         $liClass = "last"; 
        $criteria  = new CDbCriteria(); 
        $criteria->order = "sort ASC"; 
        $criteria->compare("parent", $result->id); 
        $children = AdminMenu::model()->count($criteria); 

        $active = $this->checkIfActive($result->url, $curl); 

        $liClass .= ($active) ? " active" : ""; 

        $html .= "<li class='$liClass'> 
         <a href='"; 
        $html .= ($children > 0) ? "javascript::" : $result->url; 
        $html .= "'>"; 
        $html .= (is_null($result->icon)) ? "" : "<i class='$result->icon' ></i>"; 
        $html .= "< span class='title' >" . $result->title . " </span >"; 
        $html .= ($active) ? "<span class='selected'></span>" : ""; 
        $html .= "</a>"; 
        if ($children > 0) { 
         $html .= $this->generateMenu($type, "", $curl, $result->id); 
        } 
        $html .= "</li>"; 
       } 
       $html .= "</ul>"; 
      } 
      return $html; 
      break; 
    } 


} 

呼喚這樣的:$nav->generateMenu(1, "page-sidebar-menu", Yii::app()->request->url, 0);

內某處它的功能PHP進入無限循環。我究竟做錯了什麼?

數據庫:

+0

難道無限循環,或遞歸調用本身? – crafter

回答

2

嘗試的

$criteria->compare("parent", $parent); 

代替

$criteria->compare("parent", 0);