加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Yii嵌套设置为下拉菜单

发布时间:2020-12-13 16:18:59 所属栏目:PHP教程 来源:网络整理
导读:我正在使用Yii嵌套集行为,这有助于我保持我的类别嵌套在这里看到(无所谓的标题行,它们是俄语): 我想要做的就是使用Bootstrap嵌套菜单,它应该是这样的: $criteria = new CDbCriteria; $criteria-order = 'root,lft'; $categories = Category::model()-findA
我正在使用Yii嵌套集行为,这有助于我保持我的类别嵌套在这里看到(无所谓的标题行,它们是俄语):

我想要做的就是使用Bootstrap嵌套菜单,它应该是这样的:

$criteria = new CDbCriteria;
    $criteria->order = 'root,lft';
    $categories = Category::model()->findAll($criteria);
    foreach($categories as $i => $category) {
      $items[$i]['label'] = $category->title;
      $items[$i]['url'] = $category->url;
      $items[$i]['active'] = false;
      $items[$i]['items'] = array(
        array('label'=>'123','url'=>'#'),array('label'=>'123','url'=>'#','items'=>array(
            array('label'=>'1234',array('label'=>'1234','items'=>array(
                array('label'=>'1234',)),); 
}
$this->widget('bootstrap.widgets.TbMenu',array(
    'type'=>'pills','stacked'=>false,// whether this is a stacked menu
    'items'=>$items
));

我不明白如何完成这个,顺便说一下我读了this topic,只是不知道如何将这个功能应用于我的问题.感谢任何帮助.

解决方法

这是我用来格式化为json对象的函数,你可以修改它来生成一个php数组.

protected function formatJstree(){
        $categories = $this->descendants()->findAll();
        $level=0;
        $parent = 0;
        $data = array();
        foreach( $categories as $n => $category )
        {
            $node = array(
                'data'=> "{$category->title}",'attr'=>array('id'=>"category_id_{$category->category_id}")
            );
            if($category->level == $level){
                $data[$parent]["children"][] = $node;
            }
            else if($level != 0 && $category->level > $level){
                if(!isset($data[$n]["children"])){
                    $data[$n]["children"] = array();
                }
                $data[$parent]["children"][] = $node;
            }
            else
            {
                $data[] = $node;
                $parent = $n;
            }
            $level=$category->level;

        }
        return $data;

    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读