Yii过滤器未显示在CGridView中

时间:2016-02-01 13:45:49

标签: php mysql yii

我在过滤CGridView时遇到问题。我在studProg / view中这样做: 在这里,我基于另一个名为kurs的表/模型创建CGridView,我得到了数据,所有这些都没问题。现在我希望能够从另一个表中获取键值并将它们列在我的CGrid中的过滤器选项中。但是,下拉列表不会显示。为什么呢?

以下是我的代码的重要部分:

studProg / view CGridView body:

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'kursData',
'dataProvider'=>$kursDataProvider,
'columns'=>array(
    array(
        'header' => 'Studijska godina',
        'type' => 'raw',
        'filter' => $model->getStudijskeGodine(),
        'value' => '$data->stud_god_god'
    ),etc..

来自StudProg模型:

public function getStudijskeGodine()
{
    $query = 'select god from stud_god';
    $rezultat = Yii::app()->db->createCommand($query)->queryAll();
    $spisak = CHtml::listData($rezultat, 'god' , 'god');

    return $spisak;
}

2 个答案:

答案 0 :(得分:0)

首先在网格视图中配置filter。请注意,自定义过滤器始终适用于name属性。

        <?php
        $this->widget('zii.widgets.grid.CGridView', array(
        'id'=>'kursData',
        'dataProvider'=>$kursDataProvider,
        'filter'=>$model,    //Need this property to get the filter.
        'columns'=>array(
            array(
                'header' => 'Studijska godina',
                'name'=>'stud_god_god', //Need this filter
                'type' => 'raw',
                'filter' => $model->getStudijskeGodine(),
                'value' => '$data->stud_god_god'
            )

答案 1 :(得分:0)

如果您涉及多个表,则需要在模型中配置它们之间的关系,以便在网格中使用它进行过滤。据我所知至少。

您可以在此处找到有关它的更多信息: declaring relationships in Yii