YII框架实现排序
2015-07-20 15:59
573 查看
YII框架实现排序
用YII2实现批量修改排序功能,如下图
控制器:
模型
视图
用YII2实现批量修改排序功能,如下图
控制器:
/** * Lists all CollectionAlbum models. * @return mixed */ public function actionIndex($collectionId=0) { $collection = Collection::findOne($collectionId); if(!$collection){ throw new NotFoundHttpException('The requested page does not exist.'); } $dataProvider = new ActiveDataProvider([ 'query' => $collection->getAlbums(), 'sort' => [ 'defaultOrder' => [ 'sort'=>SORT_DESC, 'id' => SORT_DESC ] ], ]); if (Yii::$app->request->isPost) { CollectionAlbum::saveSort(Yii::$app->request->post('ids'),Yii::$app->request->post('sorts')); } return $this->render('index', [ 'dataProvider' => $dataProvider, 'collection'=>$collection, ]); }
模型
/** *保存排序结果 * @param array $ids 图片ID组成的数组 * @param array $sorts 排序结果组成的数组 * */ public static function saveSort($ids,$sorts){ foreach($ids as $k=>$v){ $album=CollectionAlbum::findOne(intval($v)); $album->sort = $sorts[intval($k)]; $album->save(false); } }
视图
<?php use yii\helpers\Html; use yii\grid\GridView; /* @var $this yii\web\View */ /* @var $dataProvider yii\data\ActiveDataProvider */ $this->title = '藏品图集:'.$collection->title; $this->params['breadcrumbs'][] = ['label' => '藏品', 'url' => ['collection/index']]; $this->params['breadcrumbs'][] = '藏品图集'; ?> <div class="collection-album-index"> <p> <?= Html::a('添加图片', ['create','collectionId'=>$collection->id], ['class' => 'btn btn-success']) ?> </p> <?= Html::beginForm(Yii::$app->request->hostInfo.Yii::$app->request->getUrl(),'post')?> <?= GridView::widget([ 'dataProvider' => $dataProvider, 'columns' => [ [ 'header'=>'排序', 'class' => yii\grid\Column::className(), 'content'=>function ($model){ return Html::hiddenInput('ids[]',$model->id).Html::textInput('sorts[]',$model->sort,['style'=>'width:45px;','class'=>'form-control']); } ], [ 'header'=>'图片', 'class' => yii\grid\Column::className(), 'content'=>function($model){ return Html::img($model->img_url.'?imageView2/1/w/100/h/100'); }, ], 'summary', 'created_at:datetime', [ 'attribute'=>'status', 'value'=>function($model){ return $model->getStatusName(); }, ], ['class' => 'yii\grid\ActionColumn','template'=>'{update} {delete}'] ], 'tableOptions'=>['class' => 'table table-striped'] ]); ?> <?= Html::submitButton('更改排序',['class'=>'btn btn-primary'])?> <?= Html::endForm()?> </div>
相关文章推荐
- php实现编辑和保存文件的方法
- php数组生成html下拉列表的方法
- Zend Studio 上 安装使用Aptana插件
- Zend Studio主题
- php -- 魔术方法 之 调用方法:__call()、__callStatic()
- php 数组转xml
- phpMyAdmin出现找不到mysql扩展和Cannot log in to the MySQL server问题
- 小心入怀Yaf
- thinkphp 路径常量
- 利用php实现文件迁移重命名
- thinkphp模块部分学习
- 一种基于PTP 协议的局域网高精度时钟同步方法(转)
- 浅谈MSTP时延与带宽和速率的关系
- 国外的php mcv框架
- YII2依赖注入和事件的使用
- phpstorm配置关联php手册
- php -- php数组相关函数
- php定时输出
- YII2 整合smarty
- php生成过去100年下拉列表的方法