Yii2 使用小部件 Breadcrumbs

Posted 爱你爱自己

tags:

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

yii有两种Breadcrumbs写法,
one:

echo Breadcrumbs::widget([
    ‘itemTemplate‘ => "<li><i>{link}</i></li>\n", // template for all links
    ‘links‘ => [
        [
            ‘label‘ => ‘Post Category‘,
            ‘url‘ => [‘post-category/view‘, ‘id‘ => 10],
            ‘template‘ => "<li><b>{link}</b></li>\n", // template for this link only
        ],
        [‘label‘ => ‘Sample Post‘, ‘url‘ => [‘post/edit‘, ‘id‘ => 1]],
        ‘Edit‘,
    ],
]);

two:

echo Breadcrumbs::widget([
    ‘links‘ => isset($this->params[‘breadcrumbs‘]) ? $this->params[‘breadcrumbs‘] : [],
]);

第二种在yii的main.php中用实例,就是最简单home->edit;

今天将要说的第一种,

echo Breadcrumbs::widget([
	‘itemTemplate‘ => "<li><i>{link}</i></li>\n", // template for all links
	‘links‘ => $link,
]);

由于此处需要使用breadcrumbs展现相应的tree结构,经过对link中的数据进行重组可以将程序写成上面的样子,

if (!empty($title)) {
    $title = $title;
    $title_arr = explode(‘/‘, $title);
    foreach ($title_arr as $k => $item) {
        if (!empty($item)) {
            $link[] = [‘label‘ => $item, ‘url‘ => [‘/tree/edit/‘, ‘id‘ => $item, ‘type‘ => 1,]];
        }
    }
    $title_s = ‘‘;
    foreach ($link as $k => $item) {
        if ($k !== 0) {
            if ($k === 1) {
                $title_s = $link[$k - 1][‘label‘];
            } else {
                $title_s = $title_s . ‘/‘ . $link[$k - 1][‘label‘];
            }
            $link[$k] = [‘label‘ => $item[‘label‘], ‘url‘ => [‘/tree/edit/‘, ‘id‘ => $item[‘label‘], ‘type‘ => 1, ‘title‘ => $title_s]];
        } else {
            $title_s = $item[‘label‘];
        }
    }
    $title = $title . ‘/‘ . $node_id[‘nodeId‘];
} else {
    $title = $node_id[‘nodeId‘];
}
$link[] = $node_id[‘nodeId‘];

这样就展示了一个tree的结构

以上是关于Yii2 使用小部件 Breadcrumbs的主要内容,如果未能解决你的问题,请参考以下文章

yii2之GridView小部件

Yii2 在“select2”小部件上需要验证规则

yii2 kartik select2 小部件不显示列表的第一个元素

yii2星小部件不会出现

从 javascript 设置 yii2 select2 小部件的值

在 Yii2 DatePicker 小部件中隐藏历史下拉选择值