Yii2中的嵌套列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yii2中的嵌套列表相关的知识,希望对你有一定的参考价值。

如何在Yii2中创建嵌套列表?不是菜单列表。我跟着Yii2 docs

所以,在config目录中的params.php中我有一个数组。代码是这样的:

<?php
return [
'version' => 'framework: ' . Yii::getVersion() . ' version: ' . '0.0.0',
'description' => [
    'app' => [
        'PT. ABC' => [
            'feature' => [
                'Request IT-06',
                'PEB'
            ],
            'bug' => [
                'No Bug'
            ],
            'changelog' => [
                'Initialize Program'
            ]
        ],
        'PT. XYZ' => [
            'feature' => [
                'Request IT-06',
                'PEB'
            ],
            'bug' => [
                'No Bug'
            ],
            'changelog' => [
                'Initialize Program'
            ]
        ],
    ],
],
];

我想制作一个嵌套列表。我只知道显示数组的索引,如下所示:

-PT. ABC
-PT. XYZ

这是我的代码:

<div class="col-lg-8">
    <div class="panel panel-default">
        <div class="panel-heading">
            <h3 class="panel-title">Welcome to <?= Yii::$app->params['version'] ?></h3>
        </div>
        <div class="panel-body">
            <?= html::ul(Yii::$app->params['description']['app'], [
                'item' => function ($item, $index) {
                    return Html::tag(
                        'li',
                        $index,
                        ['class' => 'post']
                    );
                }
            ]) ?>
        </div>
    </div>
</div>

我需要像这样,例如,

-PT. ABC
  * feature
     - feature 1
  * bug
  * changelog
-PT. XYZ
  * feature
  * bug
  * changelog
答案

你需要一个可重复的货币。使用以下方法创建您自己的Html助手:

public static function nestedUl($items) {
    return Html::ul($items, [
        'encode' => false,
        'item' => function ($item, $index) {
            if (is_array($item)) {
                $content = Html::encode($index) . Html::nestedUl($item);
            } else {
                $content = Html::encode($item);
            }

            return Html::tag(
                'li',
                $content,
                ['class' => 'post']
            );
        }
    ]);
}

它将为每个数组生成嵌套列表。

以上是关于Yii2中的嵌套列表的主要内容,如果未能解决你的问题,请参考以下文章

Recyclerview 滚动在嵌套滚动视图中的片段中不起作用

将一个嵌套字典中的选择项追加到另一个

所有动态项目的相同索引 - 嵌套动态表单 Yii2

如何使用yii2的缓存依赖特性

Yii2片段缓存详解

markdown列表中的缩进