GridView使用sqldataProvider提供数据时,如何实现下拉列表筛选过滤

劍行澗遠 2018-07-02 08:32:51
背景:Yii框架下,取数据的过程需要多次联表及嵌套查询,Model使用不熟练,所以选用sqldataProvider搭配SQL原生语句进行查询,现在已经能够实现用GridView进行结果呈现,下一步需要在前两列标题增加下拉列表实现过滤筛选的功能。
寻求度娘帮助未果,请教各位指点一下思路,本人小白一枚,请大神们用尽量直白的语言指点一二,不胜感激
...全文
140 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
劍行澗遠 2018-07-06
  • 打赏
  • 举报
回复
其实我的问题很简单,就是在不建Model和SearchModel的情况下,怎样使Filter生效?
劍行澗遠 2018-07-04
  • 打赏
  • 举报
回复
引用 1 楼 jam00 的回复:

[
'attribute' => 'status',
'label' => '状态',
'value' => function($model){
$state = $model->statusArr();
return $state[$model->status];
},
'filter' => Html::activeDropDownList($searchModel,'status',$searchModel->statusArr(),['prompt'=>'全部'])
],

statusArr()为模型中的方法

public function statusArr(){
return [
1 => '正常',
2 => '删除',
];
}


引用 1 楼 jam00 的回复:

[
'attribute' => 'status',
'label' => '状态',
'value' => function($model){
$state = $model->statusArr();
return $state[$model->status];
},
'filter' => Html::activeDropDownList($searchModel,'status',$searchModel->statusArr(),['prompt'=>'全部'])
],

statusArr()为模型中的方法

public function statusArr(){
return [
1 => '正常',
2 => '删除',
];
}

有没有不使用Model实现的方法
果酱很好吃 2018-07-02
  • 打赏
  • 举报
回复

[
'attribute' => 'status',
'label' => '状态',
'value' => function($model){
$state = $model->statusArr();
return $state[$model->status];
},
'filter' => Html::activeDropDownList($searchModel,'status',$searchModel->statusArr(),['prompt'=>'全部'])
],

statusArr()为模型中的方法

public function statusArr(){
return [
1 => '正常',
2 => '删除',
];
}

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧