我正在使用yii2 RESTapi作为我的模块。我的问题验证工作正常,错误消息msg也在控制台中显示为json格式,但它没有在表单字段中设置。请查看图像以获取更多信息。 。请帮助我...
这是模型
public function rules()
{
return [
[['username'], 'required'],
[['username'],'unique'],
}
视图:
<?php $form = ActiveForm::begin([
'id' => 'cab-form',
'enableAjaxValidation' => true,
])
; ?>
<?= $form->field($model, 'username')->textInput(['maxlength' => true]) ?>
<div class="form-group">
<?= Html::submitButton( 'Create', ['class' => 'btn btn-success','id'=>'submit-btn']) ?>
</div>
<?php ActiveForm::end(); ?>
控制器:
public function actionCreate(){
$model = new Cab;
Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
$post_data = Yii::$app->request->post();
$model->load($post_data);
$model->save();
return $model;
}
...谢谢
答案 0 :(得分:0)
唯一需要AjaxValidation才能工作。如果存在ajax请求,则需要在控制器中进行验证,并返回使用JSON编码的验证。请参阅以下示例:
if ($model->load(Yii::$app->request->post()) {
if (Yii::$app->request->isAjax) {
Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
return ActiveForm::validate($model);
}
}