Kartik Daterange no filtra fechas

Hola Amigos, a ver si pueden ayudarme. Instalé el Gridview y el Datarange de kartik, exporta a pdf, muestra el calendario, selecciona las fechas, pero el grid no filtra. Que me falta? help me plis :(

El Form:




                      <?php


use yii\helpers\Html;

use kartik\grid\GridView;

use kartik\daterange\DateRangePicker;


/* @var $this yii\web\View */

/* @var $searchModel app\models\ReportSearch */

/* @var $dataProvider yii\data\ActiveDataProvider */


$this->title = 'Reportes';

$this->params['breadcrumbs'][] = $this->title;

?>

<div class="report-index">


    <h1><?= Html::encode($this->title) ?>


   </h1>

    <?= GridView::widget([

            'dataProvider'=> $dataProvider,

            'filterModel' => $searchModel,

            'resizableColumns'=>true,

            'floatHeader'=>true,

            'toolbar' => [

                          '{export}',

                          ],

            'panel' => [

                'heading'=>'<h3 class="panel-title"><i class="glyphicon glyphicon-globe"></i> Reportes</h3>',

                'type'=>'success',

               

            ],

            'columns' => [

            ['class' => 'yii\grid\SerialColumn'],

            

            [

                'attribute' => 'fecha',

                'value' => 'fecha',

                'format' => 'date',

                'filter' => DateRangePicker::widget([

                        'model'=>$searchModel,

                        'attribute'=>'fecha',

                        'language' => 'es',

                        'convertFormat'=>true,

                        'pluginOptions'=>[

                            'timePicker'=>false,

                            'timePickerIncrement'=>30,

                            'format'=>'d-m-Y'

                        ],

                    ]),

            ],

            ...


        ],

    ]); ?>


</div>




Yo diría que tu problema está en tu modelo, no en la vista.

Cuando llenas el dataprovider, se rellenan correctamente las opciones de búsqueda?

Un saludo.

No encontré un ejemplo de como usar el daterange con el gridview. Solucioné el problema con un form que toma las variables de un datepicker puesto en los campos del form y captando las variables con request desde el modelsearch. Me funciona muy bien.

Dejo el codigo:




        // Recojo en el modelsearch las variables desde el form

        $date_desde = Yii::$app->getRequest()->getQueryParam('date_d');

        $date_hasta = Yii::$app->getRequest()->getQueryParam('date_h');


        // Las convierto a tiempo unix y hago el query

        $query = Report::find()->where(['between','created_at',strtotime($date_desde),strtotime($date_hasta)]);


        ....etc, etc



Con esto se llena el grid con data entre las fechas solicitadas por el usuario. Y aprovecho las mismas variables para el script que me exporta a excel, sin usar componentes de terceros.

Eso.

Saludos

Hola,

Quizás sea ya un poco tarde pero hace poco tuve el mismo problema. De hecho me sorprendió no encontrar un ejemplo pues filtrar grids por rango de fechas debería ser algo bastante habitual.

Por si te sirve de ayuda hace poco he subido una extensión a github (nerburish/yii2-daterange-validator) pensada para implementar el daterange de kartik en el modelo de búsqueda.

Para instalar en el composer:

"nerburish/yii2-daterange-validator": "dev-master"

En tu caso el format que debería pasar en la regla de validación es el mismo que el de kartik, es decir,

type=>‘date’ y ‘format’=>‘d-m-Y’

Saludos