Pour la colonne actif finalement voila ce que j’ai fait et cela marche.
array(
'name' =>'actif',
'value' =>'(isset($data->actif) && $data->actif=='.Yii::app()->params['actifnum'].' ?'."Yii::app()->params['actifstring']".':'."Yii::app()->params['nonactifstring']".')',
),
comme vous le voyez je sais pas pourquoi mais il faut bien mettre les quotes.
Alors pour la date la je comprends rien. Si je fais :
'datecreation',
'datemiseajour',
c’est affiché mais en integer puisqu’ils sont de type integer. mais alors comment les formatter en date c’est un problème. Si j’appelle la class formatedate cela ne marche pas.
<?php $ladate=new Fonctionsdate;?>
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'constante-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(// Liste des colonnes affichées
'id',
array(
'name' =>'actif',
'value' =>'(isset($data->actif) && $data->actif=='.Yii::app()->params['actifnum'].' ?'."Yii::app()->params['actifstring']".':'."Yii::app()->params['nonactifstring']".')',
),
//'datecreation',
//'datemiseajour',
array(
'name' => 'datecreation',
'value' =>$ladate->formatedate('datecreation'), // appel de la fonction formatDate($data, $row) de la classe objet ),
),
Si j’exécute , il m’affiche cette erreur
date() expects parameter 2 to be long, string given
C:\xamppversion\XampWin32_182\htdocs\Projet\PROJTEST\protected\fonctions\Fonctionsdate.php(12)
01 <?php
02 class Fonctionsdate
03 {
04 /**
05 * Retourne la valeur formatée de la date de création
06 * @param $data date à formater
07 * @return date Date à afficher
08 */
09 public function formatedate($ladate)
10 {
11
12 return date("d/m/Y", ($ladate));
13 }
l’erreur sélectionne la 12 ligne. Et bizarrement cette meme fonction marche avec la view sur le zii.widgets.CDetailView par contre il le refuse sur le gets.grid.CGridView.
si je modifie en remplaçant la partie de la date par:
array(
'name' => 'datecreation',
'value' =>$ladate->formatedate($model->datecreation), // appel de la fonction formatDate($data, $row) de la classe objet ),
),
il me l’affiche mais sous un format bizarre (0.00050761421319797) et c’est la même valeur qui est affichée sur toutes les lignes de la colonne.