Итак. Все действия происходят на фреймворке 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 не понятно, ну и соответственно картинки там нет..