• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Yii框架中关联字段并带搜索排序功能的实现案例

php 搞代码 3年前 (2022-01-22) 34次浏览 已收录 0个评论

1、简介

  从接触yii框架到现在已经快有两个月了,但是自己对yii框架的了解程度并不是很深,并没有系统地去学习,仅仅只是在做项目的时候遇到不懂得知识才去翻手册。

  在上一个项目中因为需要将关联的表的字段显示出来并且带搜索排序功能,这个在之前并没有接触过,因此在手册中查找了相关的资料把这个需求写出来了,并在有道云做了一些笔记,今天刚好是周末有时间就将它整理成一篇博客吧。

  废话不多说,直接上步骤吧。

2、操作步骤

  背景:这里针对GII自动生成的CURL中,增加关联表字段。

  需求:A表中有一个字段pt_id关联B表;现在需要在基于A表GII生成的CURL的基础上,增加A表关联B表字段的name值,并且带有搜索排序功能。

  2.1、step1在A model中添加一个方法

1 //意思即获取Pt的数据2 public function getPt()    //get**  get后面任意3 {4     //模型名:className(),B表字段=>A表对应字段 5     return $this->hasOne(Pt::className(), ['id' => 'ptid']); 6 }

  2.2、step2在A search 中添加需要关联的字段变量

1 public $name;   //可以关联显示多个字段2 public $*****;  //例子

   2.3、修改A search中的search函数

1 //search函数中添加 表示在SQL语句中增加关联查询2 //看起来是那么的熟悉,哈哈3 $query->joinWith(['pt']);   //这里等待pt中的值就是step1中get后面的命名

  2.4、在A search中设置排序配置

 1 //这里存放的是可以排序的字段  2 //如果A Search已经存在setSort,则其他动,只需要添加新的字段就可以了  3 //但是,我的yii 2生成的Search不存在这个排序,因此就需要额外添加了  4 //注意:当你的search中不存在这个配置时,即表明默认配置里面有设置过,当你在这里添加一个setSort则将会覆盖默认配置,之前默认有排序功能的字段将会失效  5 $dataProvider->setSort(  6 'attributes'=>[  7 //====添加新字段排序配置=  8 'name'=>[  9 'asc'=>['name' => SORT_ASC], 10 'desc'=>['name' => SORT_DESC], 11 'lable'=>'name', 12 ], 13 //================== 14 ] 15 );

  2.5、在A search中添加过滤配置

1 //在代码里面照着队形添加这一句即可2 //like,关联表全名,this->name3 $query->andFilterWhere(['like', '**_pt.name', $this->name]) ;

  2.6、修改index视图中的gridview

 1 'columns' => [  2 //===========  3 //添加  4 [  5           'attribute' => 'name',  6           'label' => '平台',  7           'value' => 'pt.name',  8           'filter' => Html::activeTextInput($searchModel, 'name', [  9               'class' => 'form-control' 10           ]), 11 ], 12 //============= 13 ]

  此时已经完成一大半了,你访问这个控制器,已经可以看到页面效果了,但是在搜索的时候确实失效的,为什么呢?

  因为*本文来@源gao@daima#com搞(%代@#码@网2

搞代gaodaima码

此时你提交的这个字段信息是属于不安全的,程序中没有记录。

  2.7、给该字段设置为安全级别

1 //在A Search中的设置规则方法中添加2 //name字段为safe3 [['name'], safe]

大工告成!!

3、小结

  这里仅仅只是一个小小的例子,通过这个例子可以知道yii添加关联字段的方法,那么你就可以根据现有的知识更改出更多的花样出来。。。。

以上就是Yii框架中关联字段并带搜索排序功能的实现案例的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Yii框架中关联字段并带搜索排序功能的实现案例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址