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的结构

时间: 2024-10-28 05:18:41

Yii2 使用小部件 Breadcrumbs的相关文章

Yii2 DetailView小部件

DetailView小部件 Yii 提供了一套数据库小部件 widgets,这些小部件可以用于显示数据 DetailView 小部件用于显示一条记录数据 ListView 和 GridView 可以用于显示一个拥有分页.排序和过滤功能的列表或者表格 2.DetailView 用来显示一条记录的详情,以下为一条记录的情况: 一个Model模型类对象的数据 ActiveRecord 类的一个实例对象 由键值对构成的一个关联数组 <?= DetailView::widget([ // 调用 Detai

yii2 利用小部件生成后台左边菜单栏

************   模型层递归查询权限   ************ /**     * 递归方式查询权限     */    public function getPrivilege()    {        $connection = \Yii::$app->db;        $top=$command = $connection->createCommand('SELECT * FROM privilege')->queryAll();               

(十三) yii2 checkboxList小部件默认选中

$items.$options都是数组格式 $items是要显示的checkbox <span style="font-size:14px;">array('0'=>'足球', '1'=>'篮球','2'=>'排球')</span> $options是你默认选中的值 <span style="font-size:14px;">array('0'=>1)</span> <span style

YII2.0之窗体小部件

在工作中用到YII2框架,之前对Yii的Widgets这个不太理解,也就没有用上.最近在查看YII2的英文指南的时候,终于弄明白了是怎么一回事. 举个简单的例子,如果在做后台开发的时候,大部分页面都需要用到一个可选择的列表(<select>),那么我们可以把它做成窗体小部件. 具体看下面代码: <?php /**  * Created by PhpStorm.  * User: Administrator  * Date: 2017/2/14  * Time: 18:01  */ nam

Yii2的相关学习记录,alert等美化、confirm异步、session中的flash及小部件的使用(六)

呃,系统自带的alert.confirm等弹出框实在是难看,作为一个颜控,这能忍? 这里我用的是kartik-v/yii2-dialog,这个是基于bootstrap3-dialog这个来做了一些常用alert.confirm和dialog的小部件封装,当然了,本质上还是bootstrap3-dialog,可以用原生的方法,原生方法的用法点这里,而bootstrap3-dialog又是基于bootstrap3的modals做的封装.嗯,基本关系就是这样.在搜索这个相关知识时,经常会看到有人提到b

YII2 小部件(widgets)

小部件基本上在views中使用,在视图中可调用 yii\base\Widget::widget() 方法使用小部件. 该方法使用 配置 数组初始化小部件并返回小部件渲染后的结果. 例如如下代码插入一个日期选择器小部件,它配置为使用俄罗斯语, 输入框内容为$model的from_date属性值. <?php use yii\jui\DatePicker; ?> <?= DatePicker::widget([ 'model' => $model, 'attribute' =>

yii2之GridView小部件

GridView小部件用于展示多条数据的列表.GridView小部件的使用需要数据提供器即yii\data\ActiveDataProvider的实例作为参数,所以 第一步就是要在控制器方法中创建这个实例然后传给视图,下面以我做的一个demo为例子进行讲解. 控制器LifeController代码: //生活记录列表 public function actionIndex() { $searchModel = new Life(['scenario' => Life::SCENARIO_SEAR

Yii2.0框架 小部件 DetailView

1.数据小部件 Yii 提供了一套数据小部件 widgets,这些小部件可以用于展示数据 DetailView 小部件用于显示一条记录数据. ListView 和 GirdView 小部件能够用于显示一个拥有分页.排序和过滤功能的一个列表或者表格. 2. DetailView 用来显示一条记录的详情,下面这些都是一条记录的情况: 一个Model模型类对象的数据. ActiveRecord类的一个实例对象. 由键值对构成的一个关联数组. 3.DetailView的创建 调用DetailView::

有趣的网页小部件笔记

在网页上加入一些简单的小部件就可以让网页变得很有趣,这里记录一下用过的比较有趣的小部件. 1. 访问次数统计 借助于amazingcounters可以统计网站的被访问次数,提供了很多的样式可以选择: 只需要将生成的html代码片段插入到要统计的网页中即可: <p style="align: center"> <a href="http://www.amazingcounters.com"> <img border="0&quo