2016-02-01 35 views
1

我在過濾我的CGridView時遇到問題。我在studProg/view中完成了這一切: 在這裏,我創建了基於另一個名爲kurs的表格/模型的CGridView,我得到了數據並且一切正常。現在我希望能夠從另一個表中獲取鍵值並將它們列在我的CGrid中的過濾器選項中。但是,下拉菜單不顯示。爲什麼?Yii過濾器沒有顯示在CGridView中

這裏是我的代碼重要部分:

studProg /視圖CGridView體:

$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; 
} 
+0

http://www.yiiframework.com/doc/api/1.1/CHtml#listData-detail 的ListData希望別的東西,然後你給什麼它。 – user5542121

回答

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' 
      ) 
+0

字段stud_god_god不是來自該模型。它來自我使用dataProvider獲得的表格。現在怎麼辦?這就是爲什麼我在代碼中出現'name'部分的錯誤。 –

0

那麼如果你有多個表涉及你需要在你的模型中配置它們之間的關係,以便在網格中使用它進行過濾。據我所知至少。

你可以在這裏找到更多關於它的信息: declaring relationships in Yii