2012-12-11 74 views
1

所以,我想在我的CGridView中新建一個按鈕。這是向上的&下箭頭按鈕將用於排序我的文章。我已經閱讀了很多如何製作這種按鈕。我已經閱讀了this link中關於如何使用這個CGridView按鈕的wiki。自定義排序向上/向下Yii CGridView按鈕

現在我有這個在我看來:

array(
       'header' => 'Action', 
       'class' => 'CButtonColumn', 
       'template' => '{moveup}{movedown}{view}{delete}', 
       'htmlOptions' => array('style' => 'width: 68px'), 
       'buttons' => array 
        (
        'moveup' => array 
         (
         'label' => 'Move Up', 
         'imageUrl' => Yii::app()->request->baseUrl . '/images/move_up.png', 
         'url' => 'Yii::app()->createUrl("KB/moveup", array("id"=>$data->KBID))', 
         'visible' => '$data->KBORDER == KB::model()->getMax()', 
        ), 
        'movedown' => array 
         (
         'label' => 'Move Down', 
         'imageUrl' => Yii::app()->request->baseUrl . '/images/move_down.png', 
         'url' => 'Yii::app()->createUrl("KB/movedown", array("id"=>$data->KBID))', 
         'visible' => '$data->KBORDER == KB::model()->getMin()', 
        ), 
       ), 
      ), 

,這一次在我的模型:

public function getMax(){ 
      $sql = 'SELECT MAX(KBORDER) FROM KB'; 
      $max = Yii::app()->db->createCommand($sql); 
      $max->queryAll(); 
      return $max; 
     } 

     public function getMin(){ 
      $sql = 'SELECT MIN(KBORDER) FROM KB'; 
      $min = Yii::app()->db->createCommand($sql); 
      $min->queryAll(); 
      return $min; 

} 

所有這些代碼運行得很好。能見度除外。我想讓上按鈕變得不可見時,它具有最高的KBORDER值或當它的位置在第一位。對於向下按鈕,當它具有最低的KBORDER值或位置在最後時,它應該是不可見的。但是,當我將該代碼放入「可見」中時,所有按鈕都不可用。 所以我的問題是,如何讓我的請求發生?

由於事先

回答

0

首先,queryAll返回一個數組。 Documentation。所以你應該使用queryScalar,你應該從函數返回結果,而不是命令對象。

return $max->queryScalar(); 

您也可以在Yii中使用statistical query

其次,你要顯示的按鈕時,它不是在頂部或底部respectivily,所以你應該否定=

「可見的」 =>「$數據 - > KBORDER = KB! :模型() - > GetMax的()」,

'可見的'=> '$數據 - > KBORDER = KB ::模型() - > getMin()',

+0

謝謝你的回答。我嘗試了你的建議,但它仍然行不通。該代碼使所有的向上/向下箭頭出現 – dyooolicious