EJuiDateTimePicker值未保存到数据库

时间:2013-04-18 07:49:37

标签: yii yii-extensions

我在yii框架中使用EJuiDateTimePicker扩展名作为日期和时间选择器。我已下载EJuiDateTimePicker并置于protected \ extensions \ jui

查看:

$this->widget(
                    'ext.jui.EJuiDateTimePicker',
                    array(
                        'model'     => $model,
                        'attribute' => 'todo_datetime',
                        'value' => $model->todo_datetime,
                        'options'   => array(
                            'dateFormat' => 'dd-mm-yy',
                            'timeFormat' => 'hh:mm:ss',//'hh:mm tt' default
                        ),
                    )
                );

动作:

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

问题:

数据库表中保存的值为0000-00-00 00:00:00它没有采用datetime选择器的值。

编辑:

模型验证

return array(
    array('todo_text, todo_datetime, priority, status', 'required'),
    array('priority, status', 'numerical', 'integerOnly'=>true),
    // The following rule is used by search().
    // Please remove those attributes that should not be searched.
    array('todo_text, todo_datetime, added_on, priority, status', 'safe', 'on'=>'search'),
);

1 个答案:

答案 0 :(得分:0)

嗯,没什么奇怪的,你应该在你的小部件和数据库中使用相同的日期格式,实际上:

    您的小部件中的
  • dd-mm-yy hh:mm:ss
  • 数据库中的
  • yyyy-mm-dd hh:mm:ss

你可以使用getter / setter或beforeSave / afterFind处理这个常见问题,这里是一个使用getter / setter的简单示例:

在你的模特中

public $dateTimeIncomeFormat = 'yyyy-MM-dd H:mm:ss';
public $dateTimeOutcomeFormat = 'dd-MM-yy H:mm:ss';

public function getDateTime()
{
    return Yii::app()->dateFormatter->format($this->dateTimeOutcomeFormat, CDateTimeParser::parse($this->todo_datetime, $this->dateTimeIncomeFormat));
}

public function setDateTime($datetime)
{
    $this->todo_datetime = Yii::app()->dateFormatter->format($this->dateTimeIncomeFormat, CDateTimeParser::parse($datetime, $this->dateTimeOutcomeFormat));
}

这将创建一个dateTime虚拟属性,您可以在窗口小部件中使用该属性。 不要忘记在模型验证规则中添加此属性。

http://www.yiiframework.com/doc/guide/1.1/fr/topics.i18n#date-and-time-formatting