sustituir campo null en gridview

hola comunidad,

Tengo un Gridview en el que quiero que la columna fecha fin muestre aquellas fechas que están rellenas y que no muestre nada en las vacias. En mi base de datos (Mysql) tengo fechas con valor 0000-00-00 y otras con valor distinto, el campo fecha_fin en el modelo uso las funciones afterFind y beforeSave para convertir las fechas y pasarlas a formato DD/MM/AAAA.

Al realizar la consulta "CGridView" la comparación que realizo no se muestra bien, las fecha no son mostradas y si cambio los valores en en la comparación o me muestra 01-01-1970 o no llega a discriminar el valor correcto de este colocando en aquellas celdas los valores distintos a la 01-01-1970.

MODELO

   protected function afterFind ()


    {


        $this->FECHA_ALTA=date('d-m-Y',strtotime($this->FECHA_ALTA));


        $this->FECHA_BAJA=date('d-m-Y',strtotime($this->FECHA_BAJA));





return parent::afterFind ();


    }


   





     public function beforeSave()


    {


        $this->FECHA_ALTA=date('Y-m-d',strtotime($this->FECHA_ALTA));


        $this->FECHA_BAJA=date('Y-m-d',strtotime($this->FECHA_BAJA));

En la vista correspondiente estoy utilizando el CJuiDatePicker _form

<div class="row">


	<?php echo $form->labelEx($model,'FECHA_ALTA'); ?>


            <?php


                if ($model->FECHA_ALTA!='') {


                $model->FECHA_ALTA=date('d-m-Y',strtotime($model->FECHA_ALTA));


                }


                $this->widget('zii.widgets.jui.CJuiDatePicker', array(


                'model'=>$model,


                'attribute'=>'FECHA_ALTA',


                'value'=>$model->FECHA_ALTA,


                'language' => 'es',


                'htmlOptions' => array('readonly'=>"readonly"),


                'options'=>array(


                'autoSize'=>true,


                'defaultDate'=>$model->FECHA_ALTA,


                'dateFormat'=>'dd-mm-yy',


                'buttonImage'=>Yii::app()->baseUrl.'/images/calendar.png',


                'buttonImageOnly'=>true,


                //'buttonText'=>'Fecha',


                'selectOtherMonths'=>true,


                'showAnim'=>'slide',


                'showButtonPanel'=>true,


                'showOn'=>'button',


                'showOtherMonths'=>true,


                'changeMonth' => 'true',


                'changeYear' => 'true',


                ),


                )); ?>


                <?php echo $form->error($model,'FECHA_ALTA'); ?>


    </div>

EN LA VISTA ADMIN

<?php $this->widget(‘zii.widgets.grid.CGridView’, array(

'id'=&gt;'tb-aplicacion-asociacion-grid',


'dataProvider'=&gt;&#036;model-&gt;search(),


'filter'=&gt;&#036;model,


'columns'=&gt;array(


	'COD_ENTIDAD',


	array ('name'=&gt;'cODENTIDAD', 'value'=&gt;'&#036;data-&gt;cODENTIDAD-&gt;NOMBRE_CORTO','header'=&gt;'Entidad'),


            'TIPO_PARTICIPA',


            array ('name'=&gt;'eSTENTIDAD','value'=&gt;'&#036;data-&gt;eSTENTIDAD-&gt;DESCRIP_ESTADO','header'=&gt;'Estado'),





            'FECHA_ALTA',


           //array ('name'=&gt;'FECHA_ALTA','value'=&gt;'&#036;data-&gt;FECHA_ALTA&gt;=1985-01-01 ?&quot; &quot;:&#036;data-&gt;FECHA_ALTA'),





	//comparo la fecha con el valor de la tabla


            array ('name'=&gt;'FECHA_BAJA','value'=&gt;'&#036;data-&gt;FECHA_BAJA&#33;==00-00-0000 ?&quot; &quot;:&#036;data-&gt;FECHA_BAJA'),


		   


                 array(


		'class'=&gt;'CButtonColumn',


	),


),

)); ?>

En el gridview en luhar de


array ('name'=>'FECHA_BAJA','value'=>'$data->FECHA_BAJA!==00-00-0000 ?" ":$data->FECHA_BAJA'),

pon esto


array ('name'=>'FECHA_BAJA','value'=>'$data->FECHA_BAJA!==0 ? null : $data->FECHA_BAJA'),

Muchas gracias por la contestación.

He cambiado la comparación y elimina todas las fechas sin excepción, prentendo que muestre solo aquellas distintas a 0 o null que se encuentren en la base de datos.

he probado esto otro pero me muestra todas las fechas (buenas y null), las correctas como las null.

          array ('name'=&gt;'FECHA_BAJA','value'=&gt;'&#036;data-&gt;FECHA_BAJA&#33;==0 ? &#036;data-&gt;FECHA_BAJA : null '),

alguna otra solución u forma de hacer la comparación.

Muchas gracias por vuestro tiempo.

Debe ser


array ('name'=>'FECHA_BAJA','value'=>'$data->FECHA_BAJA==0 ? null : $data->FECHA_BAJA'),

Gracias por la respuesta de nuevo.

pero al colocar en la vista esa línea muestra todas las fechas, tanto las correctas como las null. Adjunto imagen para mostrar lo que indico, ocultar las fecha 01-01-1970 y dejar el resto.

Muchas gracias!!

Tambien debes quitar la función afterFind del modelo y solo aplicar el formato en el gridview


array ('name'=>'FECHA_BAJA','value'=>'$data->FECHA_BAJA==0 ? null : date("d-m-Y",strtotime($data->FECHA_BAJA))'),

Hola,

Perdón por la tardanza en contestar… muchas gracias!, he eliminado la función afterFind y parece que por el momento no me esta dando problemas.

gracias!! de nuevo.