如何在列中添加Yii2 datepicker,可以通过在GridView中按此日期来选择日期

时间:2019-03-22 09:33:19

标签: gridview datepicker yii2

事实上,标题中还有一个问题。大致介绍了如何在色谱柱上进行过滤,但没有具体日期的选择。

1 个答案:

答案 0 :(得分:0)

安装。获取Composer软件包:

php composer.phar require --prefer-dist yiisoft/yii2-jui

视图中:

       echo \yii\jui\DatePicker::widget([
            'model' => $model,
            'attribute' => 'date',
            ]);

在模型中(验证unix时间戳)-日期在数据库或.t中是整数。

    ['date', 'default', 'value' => null],
    ['date', 'date', 'timestampAttribute' => 'date'],

或:

public function beforeValidate() {
     if ($this->date !== null) {
       $this->date= strtotime($this->date);
    }
    return parent::beforeValidate();
}

在过滤器Gridview(搜索)中:

  [
     'attribute' => 'date',
     'filter' => \yii\jui\DatePicker::widget([
            'model'      => $searchModel,
            'attribute'  => 'date',
            'dateFormat' => 'php:Y-m-d',
            'options' => [
                'class' => 'form-control',
                'autocomplete' => 'off',
            ]
        ]),
    ],

在modelSearch中:

public $date;

public function rules()
{
    return [
        [['date'], 'safe'],
        ['date', 'default', 'value' => null],
    ];
}
//...
        if ($this->date !== null) {
            $date = strtotime($this->date);
            $query->andFilterWhere(['between', 'date', $date, $date + 3600 * 24]);
        }

作为GridView中的输入:

      [
        'label' => 'date',
        'value' => function ($model, $key, $index) {
            return  \yii\jui\DatePicker::widget([
            'model' => $model,
            'attribute' => 'date',
            ]);
        },
        'format' => 'raw'
      ],