2014-10-27 38 views
0

這是我在模型規則中的代碼... ............................. .................................................. ..............................................CJuiDatePicker始終在數據庫中保存當天

array('dataMedicao', 'type', 'type' => 'date', 'message' => '{attribute}: is not a date!', 'dateFormat' => 'yyyy-MM-dd'), 
array('dataMedicao', 'default', 
'value' => new CDbExpression('NOW()'), //automatically add the current date in mysql feild 
'setOnEmpty' => true, 'on' => 'update'), 
array('date_created,date_modified', 'default', 
'value' => new CDbExpression('NOW()'), 
'setOnEmpty' => false, 'on' => 'insert'), 

................................................ .................................................. ............................

protected function beforeSave() { 
$this->dataMedicao = new CDbExpression('NOW()'); 
return parent::beforeSave(); 
} 

protected function afterFind() { 
$this->dataMedicao = date('Y-m-d', strtotime($this->dataMedicao)); 
return TRUE; 
} 

............... .................................................. .................................................. ........

這是我在表單代碼...

<?php echo $form->labelEx($model, 'dataMedicao'); ?> 
<?php 
$this->widget('zii.widgets.jui.CJuiDatePicker', array(
'name' => 'dataMedicao', 
'attribute' => 'dataMedicao', 
'value' => $model->dataMedicao, 
// additional javascript options for the date picker plugin 
'options' => array(
'showAnim' => 'fold', 
'dateFormat' => 'yy-mm-dd', 
), 
'htmlOptions' => array(
'style' => 'height:20px;' 
), 
)); 
?> 
<?php echo $form->error($model, 'dataMedicao'); ?> 

.............................. .................................................. ...........................................

在我的數據庫日期設置爲0000-00-00,當我列出他們,他們將設置爲1970-01-01 ...然後在更新我使用DatePicker設置日期來更新字段,但它總是獲取更新到當前我們的日期...如何獲取DatePicker中設置的日期以及如何將其保存在我的數據庫中? 感謝您的全力幫助

回答

0

您的beforeSave確保$this->dataMedicao始終設置爲NOW()每當更新記錄時。刪除此行或將其包裹在只能在插入時發生的情況。

protected function beforeSave() { 
    if ($this->isNewRecord) 
     $this->dataMedicao = new CDbExpression('NOW()'); 
    return parent::beforeSave(); 
} 

這也可以通過編輯您的rules來完成。

而且您的日期選擇器代碼應引用$model如下:

$this->widget('zii.widgets.jui.CJuiDatePicker', array(
    'model' => $model, 
    'attribute' => 'dataMedicao', 
    ... 

如果沒有這一點,dataMedicao不能大規模分配在自發布變量的namedataMedicao而不是<Model>[dataMedicao]設置。

+0

解決了......謝謝! ;) – 2014-10-30 10:23:26