TUTORIAL YII FRAMEWORK (CAPÍTULO 10) – BÚSQUEDAS POR FECHAS CON SYDATECOLUMN

– Bajamos la extensión de http://www.yiiframework.com/extension/sydatecolumn/ y la copiamos la clase en /protected/components/
– En nuestro CGridView colocamos la columna de la fecha así:

array(
'header'=>'Fecha Vigencia',
'name'=>'fecha_vigencia',
'value' => 'cambio_fecha($data->fecha_vigencia)' ,
'htmlOptions'=>array('width'=>'180px'),
'class'=>'SYDateColumn',
),

– Agregar en el modelo la variable donde se guardará el rango:


public $fecha_vigencia_range = array();

– Agregar a la función rules nuestro campo fecha_vigencia_range para que el formulario mantenga la fecha dada luego de la búsqueda

function rules() {
return array(
//...
array('.....,fecha_vigencia_range', 'safe', 'on'=>'search'),

– En la función search del modelo agregamos lo siguiente:

$from = $to = '';
if (count($this->fecha_vigencia_range)>=1) {
if (isset($this->fecha_vigencia_range['from'])) {
$from = $this->fecha_vigencia_range['from'];
}
if (isset($this->fecha_vigencia_range['to'])) {
$to= $this->fecha_vigencia_range['to'];
}

}
if ($from!='' || $to !='') {
if ($from!='' && $to!='') {
$from = date("d-m-Y", strtotime($from));
$to = date("d-m-Y", strtotime($to));
$criteria->compare('fecha_vigencia',">= $from",false);
$criteria->compare('fecha_vigencia',"<= $to",false);
}
else {
if ($from!='') $creation_time = $from;
if ($to != '') $creation_time = $to;
$creation_time = date("d-m-Y", strtotime($creation_time));
$criteria->compare('fecha_vigencia', "$creation_time" ,false);
}
}

Anuncios

Publicado el 27/01/2012 en Yii Framework. Añade a favoritos el enlace permanente. Deja un comentario.

Tu Opinión es Importante, Comenta!

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s