Я пытался проверить мою форму смены пароля 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(); ?>
Может кто-нибудь сообщить мне, что я делаю неправильно?
Недостаточно просто включить его в ActiveForm
конфигурации.
Запросы могут быть отправлены, но форма останется без изменений.
Вы также должны подготовить свои контроллеры (в сгенерированных CRUD контроллерах они create
а также update
, в вашем случае это может быть только один — который отвечает за обновление пароля), чтобы вернуть надлежащие данные JSON в случае запроса AJAX.
Посмотрите, как это делается в официальная документация.
Функция класса Сценарий класса должна иметь опцию по умолчанию:
public function scenarios()
{
return [
'default' => ['old_password', 'new_password', 'confirm_password']
];
}