🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# GridView ~~~ use yii\grid\GridView; echo yii\grid\GridView::widget([ 'dataProvider' => $dataProvider, ]); ~~~ 常用配置 ~~~ <?php use yii\grid\GridView; echo GridView::widget([ 'dataProvider' => $dataProvider, //表格列值搜索功能,注意一定要配合attribute才会显示 //$searchModel = new ArticleSearch(); 'filterModel' => $searchModel, //重新定义分页样式 'layout'=> '{items}<div class="text-right tooltip-demo">{pager}</div>', 'pager'=>[ //'options'=>['class'=>'hidden']//关闭分页 'firstPageLabel'=>"First", 'prevPageLabel'=>'Prev', 'nextPageLabel'=>'Next', 'lastPageLabel'=>'Last', ], 'columns' => [ ['class' => 'yii\grid\SerialColumn'],//序列号从1自增长 // 数据提供者中所含数据所定义的简单的列 // 使用的是模型的列的数据 'id', 'username', [ 'label' => '车辆ID', // 自定义显示名称 'attribute' => 'id', // 模型字段名称,产生一个a标签,点击可排序*/ //'format' => 'html', // 内容显示模式 //'value' => 'id', // 内容 //'value' => 'cate.cname', //关联表 'value'=>function($model){ // 自定义处理方法 return $model->id; }, //在搜索条件(过滤条件)中使用下拉框来搜索 'filter' => Html::activeDropDownList( $searchModel, 'yeartype', $array, // 搜索条件,一维数组 ['prompt'=>'全部',"class" => "form-control"] ), 'headerOptions' => ['width' => '80'], // 宽度 ], // 操作按钮自定义 [ //动作列yii\grid\ActionColumn //用于显示一些动作按钮,如每一行的更新、删除操作。 'class' => 'yii\grid\ActionColumn', 'header' => '操作', 'template' => '{view} {delete} {update}', // 展示操作 'headerOptions' => ['width' => '240'], 'buttons' => [ // 自定义属性 'diy' => function ($url, $model, $key) { // 按钮属性 $options = [ 'title' => Yii::t('yii', 'View'), 'aria-label' => Yii::t('yii', 'View'), 'data-pjax' => '0', 'model'=>$model->id, 'id'=> $key, ]; // 生成按钮 return Html::a('<span class="glyphicon glyphicon-refresh"></span>', $url, $options); }, 'delete' => function($url, $model, $key){ return Html::a('<i class="fa fa-ban"></i> 删除', ['del', 'id' => $key], [ 'class' => 'btn btn-default btn-xs', 'data' => ['confirm' => '你确定要删除文章吗?',] ] ); }, ], ], ], ]); ?> [ 'attribute' => 'is_delete', 'label' => '是否删除', 'value'=>function ($model){ return $model->is_delete==1?'删除':'未删除'; }, 'filter' => Html::activeDropDownList($searchModel,'is_delete',['1'=>'删除','0'=>'未删除'], ['prompt'=>'全部',"class" => "form-control"]), 'headerOptions' => ['width' => '100'], ], ~~~ #### **操作按钮** ~~~ [ 'class' => 'yii\grid\ActionColumn', 'header' => '操作', 'template' => '{view} {delete} {update} {diy}', // 展示操作 //'headerOptions' => ['width' => '240'], 'buttons' => [ // 自定义按钮 'diy' => function ($url, $model, $key) { // 按钮属性 $options = [ 'title' => Yii::t('yii', 'View'), 'aria-label' => Yii::t('yii', 'View'), 'data-pjax' => '0', 'model'=>$model->id, 'id'=> $key, ]; // 生成按钮 return Html::a('<span class="glyphicon glyphicon-refresh"></span>', $url, $options); }, ] ], ~~~ #### **批量删除** ~~~ // 视图内 - 设置表单ID ,增加ID复选: <?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'options' => ['id' => 'grid'], 'footer' => '<button href="#" class="btn btn-default btn-xs btn-delete" url="'. Url::toRoute('admin/delete') .'">删除</button>', 'columns' => [ //['class' => 'yii\grid\SerialColumn'], [ "class" => "yii\grid\CheckboxColumn", "name" => "id", ], ] ?> // 视图内按钮 <?= Html::a("批量删除", "javascript:void(0);", ["class" => "btn btn-success gridview"]) ?> // 视图内注册JS $this->registerJs(' $(".gridview").on("click", function () { var keys = $("#grid").yiiGridView("getSelectedRows"); console.log(keys); $.post("delall?id="+keys); }); '); // 控制器内定义删除方法 public function actionDelall($id) { $model =new CarBrand(); if($model->deleteAll("id in($id)")){ // return $this->render('index',['id'=>3,'mark'=>2]); return $this->redirect(['/carbrand/index']); }else{ echo "err"; } } ~~~ #### 1. 处理时间 ~~~ [ 'label'=>'更新日期', 'format' => ['date', 'php:Y-m-d'], 'value' => 'updated_at' ], //or [ //'attribute' => 'created_at', 'label'=>'更新时间', 'value'=>function($model){ return date('Y-m-d H:i:s',$model->created_at); }, 'headerOptions' => ['width' => '170'], ], ~~~ #### 2. 处理图片 ~~~ [ 'label'=>'封面图', 'format'=>'raw', 'value'=>function($m){ return Html::img($m->cover, ['class' => 'img-circle', 'width' => 30] ); } ], ~~~ #### 3. 数据列有链接 ~~~ [ 'attribute' => 'title', 'value' => function ($model, $key, $index, $column) { return Html::a($model->title, ['article/view', 'id' => $key]); }, 'format' => 'raw', ], ~~~ #### 4. 数据列显示枚举值(男/女) ~~~ [ 'attribute' => 'sex', 'value'=>function ($model,$key,$index,$column){ return $model->sex==1?'男':'女'; }, //在搜索条件(过滤条件)中使用下拉框来搜索 'filter' => ['1'=>'男','0'=>'女'], //or 'filter' => Html::activeDropDownList($searchModel, 'sex',['1'=>'男','0'=>'女'], ['prompt'=>'全部'] ) ], [ 'label'=>'产品状态', 'attribute' => 'pro_name', 'value' => function ($model) { $state = [ '0' => '未发货', '1' => '已发货', '9' => '退货,已处理', ]; return $state[$model->pro_name]; }, 'headerOptions' => ['width' => '120'] ] ~~~