Yii x-редактируемый в CGridView: не останавливать обновление экрана, когда успех возвращает ошибку

Когда JSON ответ отправляет response.success == falseЯ вижу журнал консоли, показывающий мне ошибку, но x-editable кажется, что не ловит returnи значение на экране меняется на новое, введенное мной, хотя оно не было действительно сохранено. Что-то не так?

Вот фрагмент кода CGridView, который я использую:

'class' => 'editable.EditableColumn',
'editable' => array(
  'model' => $model,
  'params' => array('YII_CSRF_TOKEN' => Yii::app()->request->csrfToken),
  'url' => $this->createUrl('user/update'),
  'success' => 'js: function(response, newValue) {
    if(!response.success) 
      console.log(response.msg);
      return response.msg;
    }',
  'options' => array(
    'ajaxOptions' => array('dataType' => 'json')
  ),
)

РЕДАКТИРОВАТЬ 1:

Хорошо, я работал над этим, и я нашел, в чем проблема. Кажется, что функция JavaScript, которую я поставил на успех, не работает должным образом.

if оператор правильно перехватывает ответ, но возвращаемое значение отправляется неправильно. Я объясняю: если я поставлю такой литерал: return "test return"; значение возвращается правильно, но если я поставлю return response.msg; ничего не отправлено.

Конечно, response.msg не является пустым и правильно содержит сообщение String.

1 ответ

Решение

Хорошо, я работал над этим, и я нашел свою глупую ошибку... Я возвращал msg как массив, и мне пришлось сделать это:

return response.msg[index];

куда index где хранится сообщение

Это было действительно неловко терять время с этим...

Другие вопросы по тегам