【问题标题】:Yii : How to add datepicker in order to filter gridviewYii:如何添加日期选择器以过滤网格视图
【发布时间】:2016-05-15 09:47:49
【问题描述】:

这是我的代码,以便在控制器中显示一些关系表数据

    $query = 'SELECT `Transaction`.`id`, SUM(`Transaction`.`amount`) AS all_amount, `App`.`packageId` as packageId, `title` FROM `Transaction` INNER JOIN `App` ON `Transaction`.`fk_app_id` = `App`.`id` GROUP BY `App`.`packageId`';
$model = \Yii::$app->db->createCommand($query)->queryAll();
    $provider = new ArrayDataProvider([
                'allModels' => $model,
               'sort' => [
                    'attributes' => ['id', 'all_amount', 'title'],
                ],
                'pagination' => [
                    'pageSize' => 20,
                ],

            ]);

这是查看代码

echo GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        'id',
        'packageId',
        'all_amount',
        'title'


    ],

]);

我想添加一个日期选择器来查看和使用它来过滤 GridView
我是yii2的新手,请告诉我

【问题讨论】:

    标签: php yii yii2


    【解决方案1】:

    首先安装任何日期选择器小部件,即2amigos date picker

    use dosamigos\datepicker\DatePicker;
    

    在您的索引网格中

        <?= GridView::widget([
            'dataProvider' => $dataProvider,
            'filterModel' => $searchModel,
        'columns' => [
        'id',
            'packageId',
            'all_amount',
            'title',
        [
                        'attribute'=>'attribute_name',
                        'value' =>'attribute_name',
    
                        'filter'=>DatePicker::widget([
                'model' => $searchModel,
                'attribute'=>'attribute_name',
                    'clientOptions' => [
                        'autoclose' => true,
                        'format' => 'yyyy=M-dd'
                    ]
            ])       
    ],
        ],
            ]); 
    
            ?>
    

    actionindex()的控制器中

    public function actionIndex()
        {
            $searchModel = new <model name>Search();
            $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
    
            return $this->render('index', [
                'searchModel' => $searchModel,
                'dataProvider' => $dataProvider,
            ]);
        }
    

    【讨论】:

    • 它只是一个过滤器模型,如果你不需要它可以更改/删除...如果答案适合你,那么请接受这个答案
    • 请分享搜索型号代码,谢谢。我会这样做
    【解决方案2】:

    试试这个...

    include: use dosamigos\datepicker\DatePicker;//index.php//grid
    
    </php echo GridView::widget
            ([
                'dataProvider' => $dataProvider,
                 'filterModel' => $searchdata,
     'columns' => [
                       [
                                'label' => 'DATE',
                                'value' => 'date',
                                'filter'=> DatePicker::widget([
                                'attribute' => 'date',
                                'name' => 'DATE',
                                'value' => 'date',
                                'model' => $searchdata,
                                'clientOptions' => [
                                     'autoclose' => false,
                                    'format' => 'yyyy-mm-dd'
                                   ],
                                ]);
                         ],
                 ]
           ]);
    
    //controller
    public function actionIndex()
        {
             $searchdata = new Model_NameSearch();
             $dataProvider = $searchdata->search(Yii::$app->request->queryParams);
                return $this->render('index', [
                    'searchdata' => $searchdata,
                    'dataProvider' => $dataProvider,
                ]);
    
        }
    

    【讨论】:

      【解决方案3】:

      以下是完整的选项集。默认列类已被删除,因此您也需要将其添加回来。

      use yii\jui\DatePicker;
                  [   'attribute' => 'taskduedt',
                      'format' => 'date',
                      'filter' => DatePicker::widget([
                          'model' => $searchModel,
                          'dateFormat' => 'yyyy-MM-dd',
                          'options' => ['class' => 'form-control', 'placeholder' => 'Search',],
                          'attribute' => 'taskduedt',
                          'clientOptions' => [
                              'autoclose' => true,
                              'format' => 'yyyy-MM-dd'
                          ],
                      ]),
                  ],
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-29
        • 1970-01-01
        相关资源
        最近更新 更多