Имеется 2 контролера: Post и Comment, которые отвечают за действия с публикациями и комментариями соответственно.
При просмотре публикации выводиться собственно информация о ней, комментарии к ней и форма создания/редактирования комментариев(за вывод отвечает post/view)
Так вот проблема возникла при редактировании.
Аякс запрос загружает нужные данные в форму для редактирования:
Код: Выделить всё
$('#comment').on('click', '*[data-iaction="edit"]', function(){
var id=parseInt($(this).attr('data-id'));
$.ajax({
type: "POST",
url: "<?=Yii::app()->createUrl("comment/edit")?>",
dataType:'html',
data: 'id='+id,
success: function(data){
$('#newComment').html(data);
}
});
});
Код: Выделить всё
$('#newComment').on('click', '*[data-iaction="save"]', function(){
var id=parseInt($(this).attr('data-id'));
$.ajax({
type: "POST",
url: "<?=Yii::app()->createUrl("comment/edit")?>",
dataType:'html',
data: $('#comment-form').serialize()+'&id='+id,
success: function(data){
clearComment();
$('#comment').html(data);
}
});
});
Код: Выделить всё
function actionEdit(){
if (Yii::app()->request->isAjaxRequest) {
$model=$this->loadComment($_POST['id']);
if (isset($_POST['Comment'])&&(Yii::app()->user->id==$model->authorId)) {
$oldModel=$this->loadComment($_POST['id']);
$model->attributes = $_POST['Comment'];
$model->authorId=Yii::app()->user->id;
$model->dateComment=$oldModel->dateComment;
$model->wasRead=$oldModel->wasRead;
$model->postId=$oldModel->postId;
// Uncomment the following line if AJAX validation is needed
$this->performAjaxValidation($model);
if (!$model->save()){
print_r($model->getErrors());
}
$this->renderPartial('commentList',['Comments'=>$this->loadPost($oldModel->postId)->comments], false);
Yii::app()->end();
}
$this->renderPartial('_commentForm',['model'=>$model], false);
}
}
А должен быть, как вы уже поняли, возвращен список комментариев для обновления страницы:
Код: Выделить всё
$this->renderPartial('commentList',['Comments'=>$this->loadPost($oldModel->postId)->comments], false);