lem89
@lem89
WEB-Разработчик

Почему Yii2 Captcha не видит Action в модуле?

Итак. Все действия происходят на фреймворке Yii2 в модуле feedback
Маршрутизация:
public $urlRules = [
        'prefix' => 'feedback',
        'routePrefix' => 'feedback',
        'rules' => [
            'send' => 'send',
            'captcha' => 'default/captcha',
        ],
    ];

Контроллер:
class DefaultController extends Controller
{
public function actions()
    {
        return [
            'captcha' => [
                'class' => 'yii\captcha\CaptchaAction',
                //'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
            ],
        ];
    }
}

Модель
...
public function rules()
    {
...
 $rules[] = [$field, 'captcha', 'captchaAction'=>'/feedback/captcha'];
...
}
...

Форма:
...
 echo $form->field($this, $field)->widget(Captcha::className([
                        'captchaAction' => '/feedback/captcha'
                    ]));
...


Если зайти на страницу
site.ru/feedback/captcha
то все ок - мы увидим картинку (каптчу).
Но если зайти в форму обратной связи, то получаю ошибку:
Exception (Invalid Configuration) 'yii\base\InvalidConfigException' with message 'Invalid CAPTCHA action ID: /feedback/captcha'

Пробовал в модели прописать так:
$rules[] = [$field, 'captcha', 'captchaAction'=>'/feedback/default/captcha'];

В этом случае ошибка не возникает, но адрес картинки становится такой:
/feedback/site/captcha?v=5c4016f819eec6.36931450, откуда появляется site не понятно, ну и соответственно картинки там нет..
  • Вопрос задан
  • 339 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы