I've created an ajax action in my controller in order to save a specific data in my post. I dont need to render a view.
my jquery script is doing the following
$("#buttonExtend<?php echo $this->post_row;?>").click(function(e){
$.ajax({
type: "POST",
url: "<?php echo Yii::app()->createUrl('post/extend', array('id' => $data['id'])); ?>",
});
});
and my action extend contains the following
protected function actionExtend($id)
{
$model=$this->loadModel($id);
if(Yii::app()->request->isAjaxRequest) {
$model->toDate = '10/10/2013';
$model->save();
}
}
when I checked the record in mysql, the to_date field is not filled.
even though the updated field, which is updated in my beforevalidate function in the model is updated.
Where is my mistake?
Thank you in avdance for your help
I think you should check the data type of field 'to_date' in the database table.
If it is datetime time than you need to specify the date time in that format for eg :'2014-02-04 19:39:12'.
Also try to print the model attributes after model->save() (print_r($model->attributes)).
This may help you.
Thanks.
You should check if your model saves. Replace:
$model->save();
With:
if(!$model->save()){
var_dump($model->errors);
exit();
}
If it doesn't, the code above will print why. (It will probably print this in your Ajax response.)
If this doesn't solve your problem you can check your model's validation rules and your database data types.