Newerton,
Sei que o correto seria abrir um novo topico, mas gostaria de ver apenas uma duvida que pode ser simples e rápida. Se não for abro outro topico. É o seguinte… Estou usando o conversor de datas i18n-datetime-behavior. Tenho no meu form 2 campos de data. Um deles o usuario escolhe a data por meio do calendário (widget CJuiDatePicker), e a outra eu passo datetime para controle de cadastro por meio do date(‘d/m/Y H:i:s’) no beforesave.
Sem o beforesave no model estava funcionando perfeitamente. Porém quando coloco o beforesave, a data inserida pelo usuario fica como 1969/12/31 e a data que passo pelo date grava corretamente.
Tem alguma idéia? Abaixo o codigo para ajudar.
_Controller
public function actionCreate()
{
$model=new veiculo;
// Uncomment the following line if AJAX validation is needed
$this->performAjaxValidation($model);
if(isset($_POST['veiculo']))
{
$model->attributes=$_POST['veiculo'];
if($model->beforeSave()){
if($model->save())
$this->redirect(array('view','created'=>'true','id'=>$model->idveiculo));
}
}
$this->render('create',array(
'model'=>$model,
));
}
_form
<?php echo $form->labelEx($model,'dataentrada'); ?>
<?php $this->widget('zii.widgets.jui.CJuiDatePicker', array(
'name'=>'veiculo[dataentrada]',
'value'=>$model->dataentrada,
'language'=>'pt-BR',
'htmlOptions' => array('size' => 10, 'class'=> 'input-small'),
'options'=>array(
'showAnim'=>'fold',
'dateFormat'=>'dd/mm/yy',
'changeMonth' => 'true',
'changeYear' => 'true',
),
));
?>
<?php echo $form->error($model,'dataentrada'); ?>
_Model
public function beforeSave()
{
if (!parent::beforeSave()) return false;
$this->status = 1;
$this->datacad = date('d/m/Y H:i:s');
$this->valor = str_replace(',', '.', str_replace('.', '', $this->valor));
return parent::beforeSave();
}