Измените imageUrl с полем user_status в пользовательской таблице
Я должен моделировать: Пользователь, UserFlag В Пользователь / индекс добавил столбец в CGridView:
array(
'class' => 'CButtonColumn',
'htmlOptions' => array("style" => 'width: 45px;'),
'template' => '{enable}',
'header' => 'management',
'buttons' => array(
'enable' => array(
'name' => 'enable',
'imageUrl' => Yii::app()->baseUrl."/images/ico/group.png",
'url' => '"#".$data->username',
'click' => 'js:function() {
if(confirm("Are you sure?")){
changeUserStatus($(this).attr("href").replace("#", ""));
}
}',
),
),
Я буду читать статус пользователя из модели UserFlag, и если статус активен, я показываю 1.png, а если статус неактивен, я показываю 2.png.
1 ответ
Да, переменная $data не доступна из imageUrl, к сожалению. Я бы порекомендовал расширение из CButtonColumn, как предложила ссылка Стю.
Если вы не хотите этого делать, вы можете создать две колонки кнопок и показывать их в зависимости от статуса. Это может быть что-то вроде этого, но вам может потребоваться настроить его, если ваше активное значение user_status не равно 1 или вы хотите, чтобы изображения были перевернуты:
'enable' => array(
'name' => 'enable',
'visible'=>'$data->user_status == 1'
'imageUrl' => Yii::app()->baseUrl."/images/ico/1.png",
'url' => '"#".$data->username',
'click' => 'js:function() {
if(confirm("Are you sure?")){
changeUserStatus($(this).attr("href").replace("#", ""));
}
}',
),
'disable' => array(
'name' => 'disable',
'visible'=>'$data->user_status == 0'
'imageUrl' => Yii::app()->baseUrl."/images/ico/0.png",
'url' => '"#".$data->username',
'click' => 'js:function() {
if(confirm("Are you sure?")){
changeUserStatus($(this).attr("href").replace("#", ""));
}
}',
),
Вам также необходимо добавить {отключить} в шаблон CButtonColumn.
Это не идеально, так как вы повторяете код, но, по крайней мере, вы можете сделать это без расширения каких-либо классов.