请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

分类遍历的一些问题

我想遍历出一个顶级分类下的所有子分类,尝试了很多方法都没成功,有点转不过弯来了,希望老师指点一下。

//方法一
//在CommonController里面只能得到最后一个顶级栏目下的分类内容?
$menu = Category::getMenu();
$this->view->params['menu'] = $menu;
$fllb = [];
foreach ($menu as $key){
    $fllb = Category::find()->where('parentid = :pid', [":pid" => $key['cateid']])->asArray()->all();
}
$this->view->params['fllb'] = $fllb;
//方法二
//找出了全部的子分类
<?php foreach ($this->params['menu'] as $top): ?>
<?php foreach($top['children'] as $child): ?>
    <?php if ($child['parentid'] == $top['cateid']): ?>
        <li><a href="<?php echo yii\helpers\Url::to(['product/index', 'cateid' => $child['cateid']]); ?>">
            <?php echo $child['title']; ?>
        </a></li>
    <?php endif; ?>
<?php endforeach; ?>
<?php endforeach; ?>


正在回答

1回答

如果只有两级分类的话,上述代码可以完成,如果想找出所有子类的子类.... 需要使用递归来查询,例如如果一个分类下有子类就调用自己再去查询出该类的子类

0 回复 有任何疑惑可以回复我~
  • 提问者 切切在心 #1
    但是方法一里面只能查找到最后一个顶级分类的$key['cateid'],没办法遍历出所有的顶级分类。
    不知道为什么...
    回复 有任何疑惑可以回复我~ 2018-04-16 22:44:31
  • Jason 回复 提问者 切切在心 #2
    要先找出pid为0的,即为顶级分类,然后递归传入当前分类id作为pid查询
    回复 有任何疑惑可以回复我~ 2018-04-16 23:09:22
  • 提问者 切切在心 #3
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-04-16 23:23:18
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信