Yii2 DateControl:如何设置默认值(日期)

时间:2015-12-17 12:36:47

标签: yii2

我在 views / example / _form.php 中有以下日期字段:

use yii\widgets\ActiveForm;
use kartik\datecontrol\DateControl;
...
$form = ActiveForm::begin();
...
echo $form->field($model, 'date')->widget(DateControl::className(), [
        'type' => DateControl::FORMAT_DATE,
        // 'value' => date('Y-m-d'),
        // 'value' => date('d.m.Y'),
        // 'value' => time(),
        // 'value' => '02.12.2015',
        // 'value' => '2015-12-02',
        // 'value' => '2015-12-02 00:00:00 0000',
        // 'value' => date('Y-M-d'),
        // 'value' => date('d.M.Y'),
        // 'value' => date('dd.MM.yyyy'),
]);
...
ActiveForm::end();

我没有尝试设置默认日期是成功的(请参阅上面的注释行)。我一直没有收到任何错误消息,也没有默认值。生成的HTML输入字段看起来总是相同的('value'为空):

<input type="text" id="yiiversion-date-disp" class="form-control" name="date-yiiversion-date" value="" data-krajee-datecontrol="datecontrol_1e107159" data-datepicker-source="yiiversion-                     date-disp-kvdate" data-datepicker-type="2" data-krajee-kvdatepicker="kvDatepicker_0aa71c62">

config / main.php 中的配置如下所示:

'modules' => [
    'datecontrol' =>  [
        'class' => 'kartik\datecontrol\Module',
        'autoWidget' => true,
        'autoWidgetSettings' => [
            'date' => [
                'pluginOptions' => [
                    'autoclose' => true,
                    'todayHighlight' => true,
                    'todayBtn' => true,
                ],
            ],
        ],
    ],
],

日期显示为 01.01.2015('dd.MM.yyyy')并保存为 2015-01-01('YM-d') - MySQL数据类型DATE。

更多信息:

1 个答案:

答案 0 :(得分:1)

根据InsaneSkull的建议,解决方案非常简单。我只需要添加到对应的控制器: $ model-&gt; date = date(&#39; Y-m-d&#39;);

最终的行动可能看起来像像这样:

public function actionCreate()
{
    $model = new YiiTask();

    if ($model->load(Yii::$app->request->post()) && $model->save()) {
        return $this->redirect(['view', 'id' => $model->id]);
    } else {
        $model->date = date('Y-m-d');
        return $this->render('create', [
            'model' => $model,
        ]);
    }
}