Yii CGridView搜索“&”包含属性

时间:2015-04-03 11:54:43

标签: php yii filter cgridview ampersand

我正在使用Yii 1.1.15框架。

我无法搜索&作为查询字符串中属性(例如brand_name)中的符号。如果我进入& URL符号如下:

localhost/doctors/brand/?brand[brand_name]=&&brand[brand_status]=

此案例为brand[brand_name]=&。它不考虑&并且被视为下一个参数终止,如果我只编码该字符,它变为:%26所以网址变为localhost/doctors/brand/?brand[brand_name]=%26&brand[brand_status]=并且它给出了正确的结果。

但是如何编码yii CGridView过滤器文本数据?

提前致谢。

1 个答案:

答案 0 :(得分:0)

CGridView使用GET作为默认的ajax类型,&是http请求的GET参数的分隔符,因此您不能将此字符用作搜索字符串的一部分。我认为解决方案是使用POST而不是GET来执行ajax请求。要将CGridView ajax参数从GET更改为POST,请将'ajaxType' => "POST"添加到cgridview选项中:

 <?php $this->widget('zii.widgets.grid.CGridView', array(
      'id'=>'...',
      'ajaxType' => "POST",
      'dataProvider'=>$model->search(),
      'filter'=>$model,
      'columns'=>array(
         ...
       ),
 )); ?>