2 zerovszero1 zerovszero1 于 2014.07.14 17:58 提问

yii zii.widgets.grid.CGridView 筛选失败

<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'fl-navigation-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'pager'=>array(

'class'=>'CLinkPager',
'header'=>'',
'cssFile'=>'amdin_css.css',
),

'htmlOptions'=>array('class'=>'FlList'),
'template'=>'{items}{pager}{summary}',
'columns'=>array(
       array(
        'name'=>'CityId',
        'headerHtmlOptions'=>array(
            'width'=>'80px',
        ),
        'value'=>'empty($data->City->City)?$data->CityId:$data->City->City',
        'filter'=>GetAllDbData::getInstance()->getModelData('fl_navigation','FlCity','CityId','City'),   
    ), 
       array(
        'name'=>'ClassId',
        'headerHtmlOptions'=>array(
            'width'=>'100px',
        ),

         'value'=>'empty($data->Class->ClassName)?$data->ClassId:$data->Class->ClassName',

        'filter'=>GetAllDbData::getInstance()->getModelData('fl_navigation','FlClass','ClassId','ClassName'),   

    ),)
 ));

其中public function getModelData($Table, $DoModel, $GetId, $GetName, $where = '') {
$arr=array();
$cityData = array();
$connection = Yii::app ()->db;
$sql = " select distinct {$GetId} from {$Table} ";
$command = $connection->createCommand ( $sql );
$result = $command->queryAll();
if (! $result) { // 如果为空返回空
return;
} else {
foreach ( $result as $v ) {
$allowId = $v [$GetId];
$data [] = $DoModel::model ()->findAll(
array(
'select'=>''.$GetId.','.$GetName.'',
'condition' => ''.$GetId.'='.$allowId.' '.$where.'',

                    )
            );
        }
        foreach ( $data as $value ) {
            foreach ( $value as $v ) {
                $arr [] = $v;
            }
        }
        if($arr){
            $cityData = CHtml::listData ( $arr, $GetId, $GetName );
        }
        //$cityData [0] = '全部';
        return $cityData;
    }
}

城市可以实现筛选,而分类不可以实现筛选想知道答案!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
yii的CListView和CGridView之分页
1,提供的dataProvider里面配置pagenation属性,例如 return new CActiveDataProvider($this, array( 'criteria'=>$criteria, 'pagination'=>array('pageSize'=>3,), )); 或者在自己定义的CArrayDataProvider里面加上这些参数   2,
Yii CGridView 基本使用(一)初展身手
很多时候,数据库里的东西不适合直接展示给用户看,需要我们进行一定的处理之后才适合阅读。但在这里不经修改的话 CGridView 只会把数据库的值原封不动地呈现,所以,我们应该在相应的字段进行修改。比如 is_delete 字段,数据库里存放的是 0 和 1,但是在这里阅读就不太好了,我们应该改成 1 展示 '是' ,0展示 '否'。看看下面的代码,我们用了一个 array,两个键分别是 name 和 value,name 对应的要填写该 model 拥有的字段,而 value 是你想展示的数据,这里可以写成
Yii框架里的一些zii用法
Yii中有很方便的日期控件CJuiDatePicker,其类在目录‘zii.widgets.jui.CJuiDatePicker'下。 用法非常简单,只需要的渲染的页面加入一下php代码就可以。 widget('zii.widgets.jui.CJuiDatePicker', array(
Yii CGridView 基本使用(三)关联表相关字段搜索
说了这么多,我们的需求究竟是什么?.... 产品经理推了推眼镜:”我们要在日志的后台管理界面加一个功能,可以通过作者名称搜索到相应的文章。这个比较急,今晚就要完成。“ 淡定淡定,不就是改需求吗。忽略进度要求,我们研究一下究竟要做什么。 其实很简单的,不就是在 POST 的 admin 界面中增加一列作者名称,然后可以通过作者名的 模糊搜索 去找到对应日志吗?看看代码,要是通过 作者 id 去搜索不就简单了吗?不过这样确实不太友好...如果是展示作者名字而已不也是很简单吗?加一个
YII中actionadmin对应的gridview数据的排序
1、首先找到模型,然后找到public function search()方法 2、在$criteria=new CDbCriteria;后面增加如下方法:   //商品列表按ID字段、降序排列 $criteria->order='goods_id desc'; 3、这时,该数据表将会控照goods_id字段,降序排列,升序为asc.   完整代码如下:   <?php /
Yii: 如何在CGridView通过Ajax方式刷新数据后执行JS脚本
Yii框架中的CGridView控件数据刷新是通过Ajax方式来实现的,如果有一些js脚本是在页面加载或重新加载的时候执行,那么在CGridView控件刷新的时候,这些js就得不到执行。这样会导致表格数据得到了更新,但部分js效果丢失的情况。解决的方法很简单,把页面加载时执行的js语句封装为函数,然后设置CGridView的afterAjaxUpdate属性,如下:'afterAjaxUpdate
Yii2.0数据筛选功能
点击网站,就显示该网站的分析图片 从网站所在页进入网站分析图片所在页的链接 关键就在于设置了参数’PageSearch[website]’ => $website->id
yii zii.widgets.grid.CGridView 时间插件查询
同学问来了,哈哈,她还先找到,大家分享 array('name' => 'date_purchased', 'type' => 'raw', 'filter'=>$this->widget('zii.widgets.jui.CJuiDatepicker', array('model'=>$model, 'attribute'=>'date_purchased', 'htmlOptions'
yii2 widget实现筛选记录
测试控制器代码: namespace frontend\controllers; use yii\web\Controller; class TestlistController extends Controller { public function actionIndex(){ $cityd = 12; return $this->render
yii使用dataProvider生成数据列表和筛选
conrtoller$search = new UserAccount(); $provider = $search->search(Yii::$app->request->get());return $this->render('search', [ 'provider' => $provider, 'searchModel' => $search, ]); model publ