Yii2 Ajax Модальный пост с проверкой Ajax работает, но модель не сохраняет - PullRequest
0 голосов
/ 16 февраля 2019

Есть много предложений начать код контроллера с этого:

 if (Yii::$app->request->isAjax && $model->load(Yii::$app->request- 
 >post())) 
 {
     Yii::$app->response->format = Response::FORMAT_JSON;
     return ActiveForm::validate($model);
 }

Я попробовал несколько стандартных методов после проверки, таких как этот, но безуспешно:

if($model->save()){

 return $this->redirect(['index']);
         }
       }

       return $this->renderAjax('create', [
         'model' => $model,
     ]);

Мой вопрос заключается в том, какой код можно поместить под вызов 'return ActiveForm :: validate ($ model)', чтобы успешно выполнить $ model-> save при успешной проверке?

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019
if($model->save(false)){

 return $this->redirect(['index']);
         }
       }

       return $this->renderAjax('create', [
         'model' => $model,
     ]);
0 голосов
/ 18 февраля 2019

Я нашел рабочее решение, и вот ссылка:

Проверка ввода формы yii2 не будет выполнена

Обратите внимание, что у меня изначально был пост-скрипт ajaxприложил к форме, которая не требуется для этой работы, и поэтому я удалил ее.Похоже, что enableAjaxvalidation отправляет сообщение как AJAX-запрос при отправке формы.

Кроме того, это должно быть как на контроллере, так и на странице формы:

use yii \ widgets \ ActiveForm;

...