Yii小部件Breadcrumbs

yii有两种Breadcrumbs写法,

one:

[php]
echo Breadcrumbs::widget([
‘itemTemplate’ => “

  • {link}
  • “, // template for all links
    ‘links’ => [
    [
    ‘label’ => ‘Post Category’,
    ‘url’ => [‘post-category/view’, ‘id’ => 10],
    ‘template’ => “

  • {link}
  • “, // template for this link only
    ],
    [‘label’ => ‘Sample Post’, ‘url’ => [‘post/edit’, ‘id’ => 1]],
    ‘Edit’,
    ],
    ]);[/php]

    two:
    [php]
    echo Breadcrumbs::widget([
    ‘links’ => isset($this->params[‘breadcrumbs’]) ? $this->params[‘breadcrumbs’] : [],
    ]);
    [/php]
    第二种在yii的main.php中用实例,就是最简单home->edit;

    今天将要说的第一种,
    [php]
    echo Breadcrumbs::widget([
    ‘itemTemplate’ => “

  • {link}
  • “, // template for all links
    ‘links’ => $link,
    ]);
    [/php]

    由于此处需要使用breadcrumbs展现相应的tree结构,经过对link中的数据进行重组可以将程序写成上面的样子,
    [php]
    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’];
    [/php]

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