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

How to add Yii2 datepicker that in a column it was possible to choose by pressing date this date in GridView

其实heading也有问题。大致遇到过如何在柱子上进行过滤,但没有具体日期的选择。

安装。获取 Composer 包:

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

可见:

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

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

    ['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',
            ]
        ]),
    ],

在模型搜索中:

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'
      ],