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框架实现排序的更多相关文章

  1. Yii框架CGridView columns中使用数组或变量传值

    继续Yii框架的学习与使用,CGridView对于网站后台而言十分有用处,可以很快速地实现数据列表显示,并集成排序,搜索等功能,很巧妙. 今天,在项目中遇到了状态显示问题,在controller中定义 ...

  2. Yii框架tips(转)

    yii的一些小的技巧 http://www.yiichina.com/topic/151 db组件 'schemaCachingDuration'=>3600, 为什么不起做用?需要开缓存 如何 ...

  3. Yii框架tips

    db组件 'schemaCachingDuration'=>3600, 为什么不起做用?需要开缓存 如何在页面下边显示sql的查询时间在log组件的routes中加入 array('class' ...

  4. 关于Yii框架的基础知识

    第一次写博文,也不知道怎么写,不太熟悉,带小伙伴学习一样我日常使用的Yii框架. PHP中的开发框架有很多,比如:ThinkPHP.Yii.CI.Laravel.Phalcon等.现在流行度最高的是L ...

  5. YII框架的使用

    YII框架的使用 spit: 吐痰,吐口水, 过去式: spat spat: 本身也可以作为一个单词, 意思是: "小打小闹""小的吵闹""小争吵&q ...

  6. Yii框架记录

    Yii框架记录 Yii 结构 使用yii开发一段时间,发现自身知其形不知其意,重温了下yii,理解框架,也可以梳理自己的知识库,借鉴成长,阶段性总结如下: 模型 模型是MVC模式中的一部分,是表现业务 ...

  7. yii框架学习(MVC)

    路由:两种方式,第一种是默认方式访问,假设配置了虚拟主机,那么localhost/web/index.php?r=admin/index    访问的是controllers目录下的admin控制器里 ...

  8. yii框架安装心得

    最近在学习yii框架, 现在将遇到的一些问题和解决方法写出来与大家分享. yii框架的安装: 下载yii框架之后, 打开文件运行init.bat文件, 如果闪退就打开php的扩展(php_openss ...

  9. Yii框架 400 错误

    YII  400错误 在YII框架中400错误是csrf校验失败的意思 csrf是什么? CSRF(Cross-site request forgery跨站请求伪造,也被称为"One Cli ...

随机推荐

  1. 基于纯Java代码的Spring容器和Web容器零配置的思考和实现(3) - 使用配置

    经过<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(1) - 数据源与事务管理>和<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(2) - ...

  2. 自己动手实现getElementsByClassName

    看了一句话,我们都是搬运工,github的搬运工,下面这代码搬运来自各个地方,最后成型. var classCache = {}; function getElementsByClassName(cl ...

  3. JavaEE Tutorials (12) - 创建和使用基于字符串的Criteria查询

    12.1基于字符串的Criteria API查询概述17812.2创建基于字符串的查询17812.3执行基于字符串的查询179

  4. HDU 3362 Fix

    题目大意:题目给出n(n <= 18)个点的二维坐标,并说明某些点是被固定了的,其余则没固定,要求添加一些边,使得还没被固定的点变成固定的,当一个没固定的点和两个固定了的点连接后,该点就被间接固 ...

  5. 《windows程序设计》学习_3.1:画出雷区,左键的使用

    #include<windows.h> #include "resource.h" LRESULT CALLBACK WndProc (HWND, UINT, WPAR ...

  6. [spring+springmvc+mybatis实践]学生社团管理系统

    一.简介 ssm框架为现在十分流行的mvc主流框架.mybatis负责与数据库交互,springmvc与spring完美适配,负责控制器和视图渲染.之前有初步学习过ssm框架,这次借学校里的web课设 ...

  7. Repeater 无刷新分页

    原文:http://blog.csdn.net/Sandy945/archive/2009/05/22/4208998.aspx 本文讲述的是如何利用 XMLHttpRequest 来对 Repeat ...

  8. Assertion failure in -[UIView layoutSublayersOfLayer:]

    Assertion failure in -[UIView layoutSublayersOfLayer:], /SourceCache/UIKit/UIKit-2935.137/UIView.m:8 ...

  9. ExtJs004define定义类

    Ext.onReady(function () { //在Ext中如何去定义一个类: Ext.define(className , properties , callback) Ext.define( ...

  10. 创建txt格式文本日志

    公共方法(可以将其放到类库里边): #region 记录日志 #region 写日志 /// <summary> /// 写日志 /// </summary> /// < ...