0

我试图验证我的 YII2 更改密码表格。但是我在模糊验证上停留在 YII2 上。

    <?php

        use yii\bootstrap\ActiveForm;
        use yii\helpers\Html;
    ?>
    <?php
        $form = ActiveForm::begin([
                    'id' => 'change-password',
                    'action' => $action,
                    'enableAjaxValidation' => true
        ]);
    ?>
<?php echo $form->field($model, 'old_password')->label(false)->passwordInput(['placeholder' => 'Your Old Password', 'class' => 'form-control']); ?>


<?php echo $form->field($model, 'new_password')->label(false)->passwordInput(['placeholder' => 'Your New Password', 'class' => 'form-control']); ?>


<?php echo $form->field($model, 'confirm_password')->label(false)->passwordInput(['placeholder' => 'Confirm Your New Password', 'class' => 'form-control']); ?>


<?php echo Html::submitButton('Submit', array('class' => 'btn btn-primary')); ?>
    <?php ActiveForm::end(); ?>

谁能让我知道我做错了什么?

4

2 回答 2

0

模型类场景函数必须有一个默认选项:

public function scenarios()
{
    return [
        'default' => ['old_password', 'new_password', 'confirm_password']
    ];
}
于 2015-03-14T21:08:27.497 回答
0

ActiveForm仅将其包含在配置中是不够的。

可以发送请求,但表单将保持不变。

您还应该准备好您的控制器(在 CRUD 生成的控制器中,它们是create并且update,在您的情况下,它可以只是一个 - 负责更新密码)以在 AJAX 请求的情况下返回正确的 JSON 数据。

在官方文档中查看它是如何完成的。

于 2015-01-14T11:45:00.587 回答