В basic приложении есть модуль /modules/user, в модуле есть модель регистрации SignupForm:
Код: Выделить всё
class SignupForm extends Model
{
....
public $verifyCode;
public function rules()
{
return [
....
['verifyCode', 'captcha', 'captchaAction' => \yii\helpers\Url::toRoute('/user/default/captcha')],
];
}
}
так же в этом же модуле есть контроллер DefaultController с экшеном Капчи и экшеном, выводящем форму регистрации:
Код: Выделить всё
class DefaultController extends Controller
{
....
public function actions()
{
return [
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
],
];
}
....
public function actionSignup()
{
$model = new SignupForm;
if ($model->load(Yii::$app->request->post())) {
if ($user = $model->signup()) {
return $this->goHome();
}
}
return $this->render('signup', [
'model' => $model,
]);
}
}
и в этом же модуле есть представление, выводящее эту форму регистрации:
Код: Выделить всё
<?php $form = ActiveForm::begin([
'id' => 'form-signup',
]); ?>
....
<?= $form->field($model, 'verifyCode')->widget(Captcha::className(), [
'captchaAction' => \yii\helpers\Url::toRoute('/user/default/captcha'),
'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>',
]) ?>
<div class="form-group">
<?= Html::submitButton(Yii::t('user/main', 'Signup'), ['class' => 'btn btn-primary', 'name' => 'signup-button']) ?>
</div>
<?php ActiveForm::end(); ?>
Проблема в том, что при обновлении картинки капчи (клик по картинке) - капча не проходит валидацию! Проходит валидацию только при обновлении страницы, т.е. при первоначальной загрузке формы.
Rules-ы все уже поотключал, все равное не работает!
Причем в этом же приложении есть контроллеры и представления с формами ,использующие Капчу (правда все они не в модулях) - они все работают корректно.
Подскажите, из-за чего это может быть?