【解决】Yii2 girdview列搜索,枚举值0,那么搜索后全部和这个0值选项就会冲突。
js和php都是弱类型,碰到这个bug时候一般view中修改枚举值用另外一个枚举值代替0,然后在searchModel中的search方法中再来修正这个值。
有时候searchModel不是单个生成的,可能是抽象成通用的,这个时候,枚举字段又不统一,处理起来就比较烦。
现在有一种能在view里通过前端的方法来修复一下(虽然比较丑,但相当方便)
1.把url 的参数传到view
'params' => Yii::$app->request->queryParams
2.视图文件中假如girdwiew中model有这么一个属性
[ 'attribute' => 'flag', 'filter' => ['0'=>'待审核','1'=>'已上架','2'=>'已下架'] ]
3.在底部用js(这里用的jquery)对筛选项搜索下拉框进行修复
<?php if(!isset($params["SearchModel"]["flag"])){$params["SearchModel"]["flag"]=''; }?> <?php if($params["SearchModel"]["flag"] ===''){ ?> <script> $("select[name=SearchModel\\[flag\\]]").val([]);</script> <?php }?>
评论区
请登陆 后评论!