所以,我想在我的CGridView中创建一个新按钮。这是&向下箭头按钮,用于排序我的文章。我已经阅读了很多关于如何制作这种按钮的内容。我已经在this link中阅读了如何使用这个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;
}
所有代码运行得很好。除了能见度。我想让up按钮在KBORDER值最高或位置在第一位时变为不可见。对于向下按钮,当它具有KBORDER的最低值或位置在最后位置时,它也应该是不可见的。但是,当我把那些代码放在我的'可见'中时,所有按钮都是不可见的。 所以我的问题是,如何让我的请求发生?
提前致谢
答案 0 :(得分:0)
首先,queryAll
返回一个数组。 Documentation。所以你应该使用queryScalar
,你应该从函数返回结果,而不是命令对象。
return $max->queryScalar();
你也可以在Yii中使用statistical query。
其次,你想在按钮不在顶部或底部时显示按钮,所以你应该否定=
'visible'=> '$ data-> KBORDER!= KB :: model() - > getMax()',
和
'visible'=> '$ data-> KBORDER!= KB :: model() - > getMin()',