Bonjour à tous,
Je débute sur Yii et je me retrouve face à un problème.
Je cherche à remplir un Cgridview :
* Dans un cellule, je veux qu'en fonction d'une valeur il m'affiche une image.
Le problème est que j’ai 5 valeurs possibles donc je n’arrive pas à adapter la condition suivante pour que les 5 possibilités soient mises en place :
array(
'header'=>'Titre',
'type'=>'raw',
'value'=>'(Log::model()->find("content_id=$data->id")->status_id) == 1 ? CHtml::image("/images/vert.png") : CHtml::image("/images/rouge.png")',
),
Je reformule donc la question : Comment gérer 5 conditions dans le champs ‘value’ d’un cgridview
Merci d’avance pour votre aide.
Raoul
(Manu34)
August 26, 2011, 8:04am
2
Salut lolman ,
si les traitements nécessaires au rendu du contenu d’une colonne deviennent complexe (comme c’est la cas avec tes 5 conditions), je crois qu’il est plus pratique d’utiliser une classe et une méthode pour rendre ce contenu. Voici un exemple d’utilisation de la classe CDataColumn qui pourrait te servir à résoudre ton problème.
ciao
Merci, pour la piste
En fin de compte j’ai fait une fonction de ce style hors de mon widget et cela passe bien …
function getIt($id){
$connection = Yii::app()->db;
$sql = "'";
$command = $connection->createCommand($sql);
$data = $command->query();
$row = $data->read();
if ($row['...'] == '1' )
{
$voyantVert = CHtml::image("/images/vert.gif");
$value = CHtml::link(Yii::app()->request->baseUrl.$voyantVert, array("log/view", "id"=>$row['content_id']));
}
if ($row['...'] == '2' )
{
$voyantRouge = CHtml::image("/images/orange.gif");
$value = CHtml::link(Yii::app()->request->baseUrl.$voyantRouge, array("log/view", "id"=>$row['content_id']));
}
if ($row['...'] == '3' )
{
$voyantOrange = CHtml::image("/images/orange.gif");
$value = CHtml::link(Yii::app()->request->baseUrl.$voyantOrange, array("log/view", "id"=>$row['content_id']));
}
if ($row['...'] == '4' )
{
$voyantGris = CHtml::image("/images/gris.gif");
$value = CHtml::link(Yii::app()->request->baseUrl.$voyantGris, array("log/view", "id"=>$row['content_id']));
}
if ($row['...'] == '5' )
{
$voyantBlanc = CHtml::image("/images/blanc.gif");
$value = CHtml::link(Yii::app()->request->baseUrl.$voyantBlanc, array("log/view", "id"=>$row['content_id']));
}
echo $value;
}