YII框架实现排序
YII框架实现排序
用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>
YII框架实现排序的更多相关文章
- Yii框架CGridView columns中使用数组或变量传值
继续Yii框架的学习与使用,CGridView对于网站后台而言十分有用处,可以很快速地实现数据列表显示,并集成排序,搜索等功能,很巧妙. 今天,在项目中遇到了状态显示问题,在controller中定义 ...
- Yii框架tips(转)
yii的一些小的技巧 http://www.yiichina.com/topic/151 db组件 'schemaCachingDuration'=>3600, 为什么不起做用?需要开缓存 如何 ...
- Yii框架tips
db组件 'schemaCachingDuration'=>3600, 为什么不起做用?需要开缓存 如何在页面下边显示sql的查询时间在log组件的routes中加入 array('class' ...
- 关于Yii框架的基础知识
第一次写博文,也不知道怎么写,不太熟悉,带小伙伴学习一样我日常使用的Yii框架. PHP中的开发框架有很多,比如:ThinkPHP.Yii.CI.Laravel.Phalcon等.现在流行度最高的是L ...
- YII框架的使用
YII框架的使用 spit: 吐痰,吐口水, 过去式: spat spat: 本身也可以作为一个单词, 意思是: "小打小闹""小的吵闹""小争吵&q ...
- Yii框架记录
Yii框架记录 Yii 结构 使用yii开发一段时间,发现自身知其形不知其意,重温了下yii,理解框架,也可以梳理自己的知识库,借鉴成长,阶段性总结如下: 模型 模型是MVC模式中的一部分,是表现业务 ...
- yii框架学习(MVC)
路由:两种方式,第一种是默认方式访问,假设配置了虚拟主机,那么localhost/web/index.php?r=admin/index 访问的是controllers目录下的admin控制器里 ...
- yii框架安装心得
最近在学习yii框架, 现在将遇到的一些问题和解决方法写出来与大家分享. yii框架的安装: 下载yii框架之后, 打开文件运行init.bat文件, 如果闪退就打开php的扩展(php_openss ...
- Yii框架 400 错误
YII 400错误 在YII框架中400错误是csrf校验失败的意思 csrf是什么? CSRF(Cross-site request forgery跨站请求伪造,也被称为"One Cli ...
随机推荐
- 如何使用Palette提取Bitmap的颜色
5.X提出了color palette 的概念,能够让主题动态的去适应当前的页面色调,让整个app色调看起来比较和谐统一 那么如何使用Palette呢,必不可少,我们需要在Android studio ...
- windows下Qt Creator5.1.0编写程序以及调用OpenCV库
系统说明 最近使用opencv编写程序,程序编的差不多就学习使用QT加个界面,首先声明下本人的系统和使用的软件版本, 系统: windows xp QT IDE:QT Creator5.1.0 Ope ...
- 校园招聘 - 比較easy的面试题
又到校园招聘的季节了, 自从和一些同事出版了<编程之美>一书之后, 我常常收到一些关于面试, 编程, 和"题库"的询问. 事实上我自己对算法没有什么研究, 有些问题都 ...
- Android应用开发基础篇(3)-----ListView
一.概述 ListView是一个列表显示控件,它的应用非常广泛,在很多应用程序中都可以看到它的身影,比如来电通,网易新闻等等,特别是QQ.因此非常有必要熟练掌握它. 二.要求 能够利用ListView ...
- 2.一步一步学c#(二):核心c#
简单的控制台应用程序. 代码(它有把某条消息写到屏幕上的一个类组成) 编译并运行程序得到结果: 在上面的代码示例中,前几行代码与名称空间有关,名称空间是把相关类组合在一起的方式.namespace关键 ...
- java web分享ppt大纲 -- servlet容器简介
今天在公司分享了java web的ppt,把ppt大纲放在这里,希望可以帮助需要的人 servlet容器简介 定义 狭义上的,servlet容器为java Web应用提供运行时环境,负责管理servl ...
- .NET WIN7+IIS 7.5下URLRewriter组件伪静态设置
原文地址:WIN7+IIS 7.5伪静态的设置 --------------------------------------------------------偶是分割线君-------------- ...
- 用js捕捉鼠标连续点击三次事件怎么实现啊
var count = 0, timer; document.onclick = function(){ if(count < 2){ if(timer){ clearTimeout(timer ...
- 我用过的linux命令--安装Hadoop
1. hadoop软件传送给虚拟机 还是利用WinSCP把hadoop软件安装包,放到linux的Downloads文件夹中. 2. 选择安装目录 把hadoop安装包copy到这个安装目录中,这里我 ...
- What I Have Lived For(我为什么而活着-罗素)
What I Have Lived For by Bertrand Russell Three passions, simple but overwhelmingly strong, have gov ...