Yii列表页 怎么更改查询的结果? [ 2.0 版本 ]
比如查询城市表,里面有数据 广东 、广州 、深圳 、湖南 、长沙。。。为了区分省和市,省的f_id = 0,而市的呢 就是对应省的 id, 这时候我用CRUD自动生成的VIEWS, 他查询出的所属省份是直接查询出数字来的,我需要换成对应的省份。不管是更改SQL语句也好,还是直接在查询出的结果里面循环再次查询也好,都可以,我只想知道,怎么或者说,在哪更改 列表页的查询语句,还有查询结果如果我要进行处理的话,结果是在哪里出来的?小白求教,很多问题。。。先问一个。感激不尽!谢谢!
最佳答案
-
index.php视图中定义展示字段修改一下
'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ ['class' => 'yii\grid\SerialColumn'], 'id', 'name', [ 'label' => 'f_id', 'attribute' => 'parentName', ], ['class' => 'yii\grid\ActionColumn'], ],
模型中添加一个新的方法:
public function getParentName() { $item = $this->findOne(['id'=>$this->f_id]); if ($item) { return $item->name; } else { // 顶级类 或者 查询的父级不存在 return '0'; } }
上面的代码可以实现展示效果,如果需要搜索,需要修改search模型。
最好的解决方法,数据表多加一个 f_name 字段, 多加一个冗余字段,程序省去了很多繁琐的处理。共 1 条回复
其他 1 个回答
凉了又温丶
注册时间:2016-05-04
最后登录:2017-11-28
在线时长:15小时38分
最后登录:2017-11-28
在线时长:15小时38分
- 粉丝1
- 金钱165
- 威望10
- 积分415