YII2框架中ActiveDataProvider与GridView的配合使用操作示例_php实例

来源:脚本之家  责任编辑:小易  

yii2 批量删除删除数据(Deleting Data)删除单行数据,首先获取与该行对应的 Ac

本文实例讲述了YII2框架中ActiveDataProvider与GridView的配合使用操作。分享给大家供大家参考,具体如下:

参考下这篇文章吧http://www.jb51.net/article/54064.htm

YII2中ActiveDataProvider可以使用yii\db\Query或yii\db\ActiveQuery的对象,方便我们构造复杂的查询筛选语句。

Yii容易学习和使用。只需要知道PHP和面向对象编程,便可以很快上手,而不必事先去学习一种新的架构或

配合强大的GridView,快速的显示我们想要的数据。

你的第二、三参数传的对吗?我用的类方法参数是:PutFile($upToken, $key, $

通过上面的两个工具,我们快速的显示用户表信息。用户表结构如下:

通用:use yii\db\Query; $query = new Query();

我们创建一个用户模型MyUser.php,代码如下:

对于君子兰,素来有\"三分品种,七分养功\"之说。一棵精品或珍品君子兰,如果后期养护不好,会大大降低它的观赏性以及价值。由于君子兰的叶片有趋光性,研究表明,君子兰向阳的一面生长素少,叶片生长慢,而背光的一面生长素多,叶片生长快。所以说,叶片总是朝生长慢的一侧弯曲,管理中光照控制不好,弯曲过度了,容易造成整株叶片七扭八歪。对此,经常有兰友问,怎样才能避免叶片参差不齐呢?一般来说,叶片齐不齐,要从新叶长出开始调整,一般老叶子的生长周期已过,很难调回中间位置了。为此,各位君子兰养家一定要注意这一点。如何能把君子兰养成\"正视成开扇,侧看一条线\"呢,经过这几天的查找资料,并结合本人日常管理中总结出的

<?php namespace app\models; use yii\db\ActiveRecord; use yii\data\ActiveDataProvider; class MyUser extends ActiveRecord { //返回要操作的表名 public static function tableName() { return '{{%user}}'; } //设置规则 //注意,如果没有给字段设置规则,GridView的筛选项是不会出现的 public function rules() { return [ [['id', 'name', 'sex', 'age'], 'trim'], [['id', 'sex', 'age'], 'integer'], ['name', 'string'], ]; } //查询 public function search($params) { //首先我们先获取一个ActiveQuery $query = self::find(); //然后创建一个ActiveDataProvider对象 $provider = new ActiveDataProvider([ //为ActiveDataProvider对象提供一个查询对象 'query' => $query, //设置分页参数 'pagination' => [ //分页大小 'pageSize' => 3, //设置地址栏当前页数参数名 'pageParam' => 'p', //设置地址栏分页大小参数名 'pageSizeParam' => 'pageSize', ], //设置排序 'sort' => [ //默认排序方式 'defaultOrder' => [ 'id' => SORT_DESC, ], //参与排序的字段 'attributes' => [ 'id', 'name', 'sex', 'age' ], ], ]); //如果验证没通过,直接返回 if (!($this->load($params) && $this->validate())) { return $provider; } //增加过滤条件 $query->andFilterWhere(['id' => $this->id]) ->andFilterWhere(['like', 'name', $this->name]) ->andFilterWhere(['sex' => $this->sex]) ->andFilterWhere(['age' => $this->age]); return $provider; } }

首先这个问题没有对或者错,不要内疚也不要自责觉得花钱出去玩了,对不起父母什么的,有时候有些问题不能简单的归结到钱。这笔钱是凭借自己的能力获得的,靠自己的努力得到的,你有能力去支配它。无论是选择储存当做生活费为家里缓解经济压力,还是和朋友一起出去消费掉。这都和父母无关,这是你自己的,你有权利支配它。其次,出去旅游并不代表我堕落或者我浪费钱,你出去旅游会开阔你的眼界,见识到不一样的风俗习惯,你也会有不一样的感受,这也是你的一份财富。但是你在旅游的时候,一定不能过度的铺张浪费,非得住海景房,非鲍鱼海参不吃,一定要用最少的钱,领略最美的风景。旅游是为了缓解压力,有一个好的心情,领悟到不同的风景和心境。

然后,创建控制器TestController.php,代码如下:

许多人爱翡翠不外乎是因为翡翠那抹明艳动人的绿,也因此一些不良商家盯上了这抹绿色,用其他在颜色上与翡翠相近的低价玉石来冒充翡翠。其中一种被用来冒充翡翠的品种便是绿玉髓。今天就来谈谈冒充翡翠的绿的绿玉髓与翡翠间的鉴别方法大集合。什么是绿玉髓?绿玉髓是绿色调的玉髓,之所以显绿色是因为绿玉髓含有的氧化镍,氧化镍中的镍元素让绿玉髓致绿色。优质的绿玉髓因多产自澳大利亚,因此绿玉髓又常被大众称为澳洲玉。绿玉髓的透明度从微透明至半透明,其矿物颗粒极为细小。绿玉髓色似翡翠,两者很容易混淆。绿玉髓的基本特征1.主要矿物成分:石英微晶(化学式SiO2)为主,占90%以上,含有数量不等的粘土杂质。2.外观特征:染绿色

<?php namespace app\controllers; use YII; use yii\web\Controller; use app\models\MyUser; class TestController extends Controller { public function actionTest() { $user = new MyUser(); //调用模型search方法,把get参数传进去 $provider = $user->search(YII::$app->request->get()); return $this->render('test', [ 'model' => $user, 'provider' => $provider, ]); } }

狗狗很多疾病都由于寄生虫引起的直接危害到狗狗的健康和生命安全下面让大家一一看看这些恐怖寄生虫的真面目1.蛔虫蛔虫是无脊椎动物,线虫动物门,线虫纲,蛔目,蛔科。是肠道内最大的寄生线虫,成体略带粉红色或微黄色,体表有横纹,雄虫尾部常卷曲。蛔虫是世界性分布种类,是非常常见的寄生虫,感染率可达70%以上2.绦虫绦虫在犬的肠道寄生虫中,是最长的一种寄生虫,种类很多,对犬的健康危害很大。可造成犬营养不良、消瘦、贫血、胃肠道症状及神经症状,重者可导致全身衰弱死亡。能在犬体内寄生的绦虫。绦虫也是最难清除的一种体内寄生虫。3.钩虫钩虫是由钩口科钩口属、弯口属的线虫寄生于犬的小肠、尤其是十二指肠中引起犬贫血、胃肠

视图页面test.php,代码如下:

<?php use yii\helpers\Url; use yii\helpers\Html; use yii\grid\GridView; ?> <div id="page-wrapper"> <div class="row"> <div class="col-lg-12"> <button class="btn btn-primary" id="showSelBtn">显示我选中的</button> </div> </div> <div class="row"> <div class="col-lg-12"> <?php echo GridView::widget([ //设置GridView的ID 'id' => 'myUserGridView', //设置数据提供器 'dataProvider' => $provider, //设置筛选模型 'filterModel' => $model, 'columns' => [ //复选框列 ['class' => 'yii\grid\CheckboxColumn'], //显示序号列 ['class' => 'yii\grid\SerialColumn'], [ //设置字段显示标题 'label' => 'ID', //字段名 'attribute' => 'id', //格式化 'format' => 'raw', //设置单元格样式 'headerOptions' => [ 'style' => 'width:120px;', ], ], [ 'label' => '姓名', 'attribute' => 'name', 'format' => 'raw', ], [ 'label' => '头像', 'attribute' => 'head_img', 'format' => 'raw', //通过该返回值,我们可以任意控制列数据的显示 //$data指向的是当前行的数据结果集 'value' => function ($data) { return '<img src="' . '/' . ltrim($data->head_img, '/') . '" width="60px">'; }, ], [ 'label' => '性别', //设置筛选选项 'filter' => [0 => '男', 1 => '女'], 'attribute' => 'sex', 'format' => 'raw', 'value' => function ($data) { return ($data->sex == 0) ? '男' : '女'; } ], [ 'label' => '年龄', 'attribute' => 'age', 'format' => 'raw', ], [ 'header' => '操作', 'class' => 'yii\grid\ActionColumn', //设置显示模板 'template' => '{upd} {del}', //下面的按钮设置,与上面的模板设置相关联 'buttons' => [ 'upd' => function ($url, $model, $key) { return '<a href="' . Url::toRoute(['test/upd', 'id' => $key]) . '" rel="external nofollow" class="btn btn-warning">修改</a>'; }, 'del' => function ($url, $model, $key) { return '<a href="' . Url::toRoute(['test/del', 'id' => $key]) . '" rel="external nofollow" class="btn btn-danger">删除</a>'; }, ], ], ], ]); ?> </div> </div> </div> <?php echo Html::jsFile('@web/js/jquery-3.3.1.min.js'); ?> <script type="text/javascript"> $("#showSelBtn").on("click", function () { var keys = $("#myUserGridView").yiiGridView('getSelectedRows'); alert(keys); }); </script>

显示结果如下:

更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

如何获得yii2框架activedataprovider循环获得所有数据

Yii::$app->db->createCommand()->batchInsert($tableName, ['name', 'sex'], [['Lucy', female"],['Lilei', male"]])->execute();

上面的写法更友好一点, 是对 Yii::$app->createCommand($sql)的进一步包装, 避免了你手动拼sql.

要注意的是, 这样写就没了AR模型相关的事件钩子.本回答被提问者采纳

yii中 CActiveDataProvider.php 是如何执行的

1、如果你用过smarty模板引擎、MVC类似框架如tp,那么你自己写一个框架噢!

2、你要对php的继承实现以及其中的小知识点熟知;

3、先列出你的框架目录,什么地方放什么,然后写你的配置文件

4、用到的高频函数有:require 、 require_once 、 file_exites等!

希望回答对你有帮助,如果有疑问,请继续“追问.

答题不易,互相理解,您的采纳是我前进的动力,感谢您.

yii2 gridview:widget 能不能传一个自定义的参数

情境要求:

要在订单(Order)视图的gridview中显示出客户(Customer)状态,并使其具有与其它字段相同的排序和搜索功能。

数据库结构

订单表order含有字段customer_id 与 客户表customer的id字段关联

首先确保在Order Model中包含以下代码:

public function getCustomer()

{

return $this->hasOne(Customer::className(), ['id' => 'customer_id']);

}

用gii会自动生成此代码;

第一步:

在OrderSearch添加一个$customer_name变量

class OrderSearch extends Order

{

public $customer_state; //<=====就是加在这里

}

第二步:

修改OrderSearch中的search函数

public function search($params)

{

$query = Order::find();

$query->joinWith(['customer']);<=====加入这句

$dataProvider = new ActiveDataProvider([

'query' => $query,

]);

$dataProvider->setSort([

'attributes' => [

/* 其它字段不要动 */

/* 下面这段是加入的 */

/*=============*/

'customer_state' => [

'asc' => ['customer.customer_state' => SORT_ASC],

'desc' => ['customer.customer_state' => SORT_DESC],

'label' => 'Customer State'

],

/*=============*/

]

]);

if (!($this->load($params) && $this->validate())) {

return $dataProvider;

}

$query->andFilterWhere([

'id' => $this->id,

'user_id' => $this->user_id,

'customer_id' => $this->customer_id,

'order_time' => $this->order_time,

'pay_time' => $this->pay_time,

]);

$query->andFilterWhere(['like', 'status', $this->status]);

$query->andFilterWhere(['like', 'customer.customer_state', $this->customer_state]) ;//<=====加入这句

return $dataProvider;

}

第三步:

修改order/index视图的gridview

<?= GridView::widget([

'dataProvider' => $dataProvider,

'filterModel' => $searchModel,

'columns' => [

['class' => 'yii\grid\SerialColumn'],

'id',

'customer_id',

'status',

['label'=>'客户', 'attribute' => 'customer_state', 'value' => 'customer.customer_state' ],//<=====加入这句

['class' => 'yii\grid\ActionColumn'],

],

]); ?>本回答被网友采纳

  • 本文相关:
  • yii中carraydataprovider和cactivedataprovider区别实例分析
  • 浅析yii2中gridview常见操作
  • yii2.0之gridview自定义按钮和链接用法
  • yii2 gridview实现列表页直接修改数据的方法
  • 浅析yii2 gridview实现批量删除教程
  • 浅析yii2 gridview实现下拉搜索教程
  • 浅析yii2 gridview 日期格式化并实现日期可搜索教程
  • yii2使用gridview实现数据全选及批量删除按钮示例
  • yii2中结合gridview如何使用modal弹窗实例代码详解
  • yii2使用gridview实现下拉列表筛选数据
  • yii2.0小部件gridview(两表联查/搜索/分页)功能的实现代码
  • yii2-gridview在开发中常用的功能及技巧总结
  • twig模板获取全局变量的方法
  • smarty模板判断数组为空的方法
  • php插入排序实现代码
  • zend framework框架中url大小写问题解决方法
  • 基于php中的常用函数回顾
  • laravel框架处理用户的请求操作详解
  • php新建类问题分析及解决思路
  • laravel5环境隐藏index.php后缀(apache)的方法
  • php循环结构实例讲解
  • php如何通过ajax方式实现登录功能
  • 如何获得yii2框架activedataprovider循环获得所有数据
  • yii中 CActiveDataProvider.php 是如何执行的
  • yii2 gridview:widget 能不能传一个自定义的参数
  • 在YII2框架中,用PHP的GD库处理上传后的图片,把该图片裁剪成圆形的图片再供前端下载.
  • 在Yii2 的 GridView 中怎么自定义默认的三个操作按钮的链接
  • yii2 怎么批量删除
  • PHP框架Yii2怎么使用内置方法更新配置文件
  • PHP Yii2开发框架有什么优势好处
  • php里面使用Yii2框架用七牛上传图片怎么上传不上去
  • yii2框架中iframe怎么使用?
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全php基础php技巧php实例php文摘php模板首页php编程php实例yii框架入门及常用技巧总结php优秀开发框架总结smarty模板入门基础教程php面向对象程序设计入门教程php字符串(string)用法总结php+mysql数据库操作入门教程php常见数据库操作技巧汇总yii中carraydataprovider和cactivedataprovider区别实例分析浅析yii2中gridview常见操作yii2.0之gridview自定义按钮和链接用法yii2 gridview实现列表页直接修改数据的方法浅析yii2 gridview实现批量删除教程浅析yii2 gridview实现下拉搜索教程浅析yii2 gridview 日期格式化并实现日期可搜索教程yii2使用gridview实现数据全选及批量删除按钮示例yii2中结合gridview如何使用modal弹窗实例代码详解yii2使用gridview实现下拉列表筛选数据yii2.0小部件gridview(两表联查/搜索/分页)功能的实现代码yii2-gridview在开发中常用的功能及技巧总结twig模板获取全局变量的方法smarty模板判断数组为空的方法php插入排序实现代码zend framework框架中url大小写问题解决方法基于php中的常用函数回顾laravel框架处理用户的请求操作详解php新建类问题分析及解决思路php循环结构实例讲解php如何通过ajax方式实现登录功能php获取数组长度的方法(有实例)微信公众平台实现获取用户openid教你如何使用php session使用php生成二维码的两种方法(带php发送get、post请求的6种方法简php中把stdclass object转array的微信公众平台网页授权获取用户基laravel框架数据库curd操作、连贯php删除数组中空值的方法介绍php字符串的连接的简单实例php 404错误页面实现代码php实现笛卡尔积算法的实例讲解yii2表单事件之ajax提交实现方法php生成ean_13标准条形码实例laravel框架用户登陆身份验证实现方法详解php中的函数声明与使用详解laravel框架基于中间件实现禁止未登录用户laravel 配置路由 api和web定义的路由的区微信红包随机生成算法php版学习php cookie处理函数
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved