2012-12-11 45 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