Filtros en barra horizontal superior

Referencia: http://yii2enespanol.com/2016/02/

en seccion required del composer

“kartik-v/yii2-date-range”: “dev-master”

en models/comprasSearch.php

Allí, deberemos agregar una nueva propiedad pública:

$public $rango_fecha;
Estamos declarando la variable que contendrá el rango de fechas a partir del cual realizaremos la búsqueda.

Recordemos, que para que este nuevo atributo pueda ser usado en las búsquedas, debemos declararlo como “safe”.
    public function rules()

  [['descripcion', 'fecha_factura', 'fecha_recepcion', 'imputacion_compra', 'comprobante', 'modo_pago', 'rango_fecha', 'fecha_desde', 'fecha_hasta'], 'safe'],

en /views/compras/index.php

use kartik\daterange\DateRangePicker;


[
            'attribute' => 'rango_fecha',
            'value' => 'fecha',
            'format'=>'raw',
            'options' => ['style' => 'width: 25%;'],
            'filter' => DateRangePicker::widget([
                'model' => $searchModel,
                'attribute' => 'rango_fecha',
                'useWithAddon'=>false,
                'convertFormat'=>true,
                'pluginOptions'=>[
                    'locale'=>['format'=>'Y-m-d']
                ],
            ])
        ],
Estos atributos, ya cumplen su propósito de realizar el filtrado, gracias a las siguientes líneas que ya están presentes en nuestro método:

$query->andFilterWhere(['>=', 'fecha', $this->fecha_desde]);
$query->andFilterWhere(['<=', 'fecha', $this->fecha_hasta]);

Lo único que resta hacer, entonces, es agregar arriba de esas líneas la lógica para asignar las partes de rango_fecha a fecha_desde y fecha_ hasta.

Hagámoslo de la siguiente manera:

if (isset($this->rango_fecha) && !empty($this->rango_fecha)) {
list($this->fecha_desde, $this->fecha_hasta) = explode(' - ', $this->rango_fecha);}

Si ahora seleccionamos un rango de fechas, veremos que el filtro funciona perfectamente. Como estamos asignando valores a fecha_desde y fecha_hasta, dichos valores estarán visibles en el formulario _search.
Redmine Appliance - Powered by TurnKey Linux