Маршрутизация:
Код: Выделить всё
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 не понятно, ну и соответственно картинки там нет..