使用yii框架在mysql中存储datetime

时间:2014-04-10 05:58:37

标签: mysql datetime yii

我在mysql中创建了datetime字段。当我使用datepicker选择日期时,我想将它存储在数据库中。

这是我在控制器中的代码部分

    public function actionCreate()
    {
    $model=new EmpDetails;
    $model->created = date("Y-m-d H:i");
    // Uncomment the following line if AJAX validation is needed
    $this->performAjaxValidation($model);

    if(isset($_POST['EmpDetails']))
    {
        $model->attributes=$_POST['EmpDetails'];
        if($model->save())
            $this->redirect(array('view ','id'=>$model->emp_id));
    }

    $this->render('create',array(
        'model'=>$model,
    ));
}

我的form.php部分是:

  <div class="row">
    <?php echo $form->labelEx($model,'dateof_leave'); ?>
        <?php $model->created=new CDbExpression('NOW()');
        $sqldate = date('Y-m-d H:i:s',strtotime($textFieldValue));?>
           <?php
            $this->widget('zii.widgets.jui.CJuiDatePicker', array(
            'model' => $model,
            'attribute' => 'dateof_leave',
            'htmlOptions' => array(
            'size' => '10',         // textField size
            'maxlength' => '10',    // textField maxlength
            ),
            ));
            ?>
    <?php // echo $form->textField($model,'dateof_leave'); ?>
    <?php echo $form->error($model,'dateof_leave'); ?>
</div>

面临错误属性“EmpLeave.created”未定义。

请澄清我的疑虑并解释我如何克服这个问题?

2 个答案:

答案 0 :(得分:0)

替换

$model->created=new CDbExpression('NOW()');

$model->created=date("Y-m-d H:i:s");

因为CJuiDatePicker需要输入字符串。

答案 1 :(得分:0)

在您的控制器中添加行

 $model->created = date("Y-m-d H:i");

在_form.php中添加dateof_leave的输入表单。因此,在发布表单时,$model->created是EMPTY。如果我理解正确在控制器中你必须添加

 $var= $_POST['EmpDetails']['dateof_leave'];
 $model->created = date("Y-m-d H:i", $var);