什么是数据小部件
顾名思义,数据小部件用来显示数据的小模块。 常用的小部件有DetailView,ListView,GridVew。
DetailView:主要用来显示一条记录数据的详细情况。
ListView 和 GridView:他们可以用来显示一个拥有分页、 排序和过滤功能的一组数据。
常见的数据小部件
DetailView用法
DetailView小部件通常用来显示的是一条记录的详情。
- 一个Model模型类对象。
- 一个AR类的实例对象。
- 由键值对构成的一个关联数组。
在我们的例子中,它就是用来显示一个AR类的实例对象,是一个文章类的实例对象。
如何显示呢,创建一个DetailView小部件来展示。
参看例子:
<?= DetailView::widget([ 'model' => $model, 'attributes' => [ 'id', 'title', 'content:ntext', 'tags', [ 'attribute'=>'status' 'value'=>$model->status0->name ] 'author_id', 'create_time:datetime', 'update_time:datetime', ], ]) ?>
需要调用DetailView的静态方法widget,
给的参数是一个关联数组:
==model== 这个键用来设置需要显示的AR对象。这里是控制器传过来的文章模型对象。
==attributes== 这个键的值又是一个关联数组,数组里面决定需要显示哪些属性以及它的格式。这样就可以把对象展示出来了。
DetailView 属性
DetailView中常用的属性
属性 | 作用 |
---|---|
attribute | 在视图上展示的属性列表 |
model | 接收控制器传递的AR类 |
options | 设置小部件标签的属性 |
template | 设置模板样式 |
其中attribute中还可以设置如下属性
属性 | 作用 |
---|---|
attribute | 设置属性名【必要】(如果没有label和value属) |
label | 属性关联的名称 |
value | 属性的值,可以使用匿名函数 function (
|
format | 显示该属性的显示格式 |
options格式
'options' => ['class' => 'table table-striped table-bordered detail-view']
template格式
'template' => '<tr><th{captionOptions}>{label}</th><td{contentOptions}>{value}</td></tr>'