Проблема с ajax обновлением капчи

Привет, столкнулся с некоторой проблемой обновления капчи в случае моей конфигурации приложения.

Во view вывожу капчу таким образом:




<?= $form->field($model, 'verifyCode', ['errorOptions' => ['class' => 'error']])

	->widget(Captcha::className(), [

		'captchaAction' => '/cabinet/captcha/',

		'options' => [

			'class' => 'text',

			'placeholder' => 'Код с картинки',

		],

	) ?>



Указание пути к экшену капчи у меня находится в основном контроллере Site




class SiteController extends Controller

{

	public function actions()

	{

		return [

			'error' => [

				'class' => 'yii\web\ErrorAction',

			],

			'captcha' => [

				'class' => 'yii\captcha\CaptchaAction',

				'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,

			],

		];

	}

}



Чтоб в него попадать по урл /cabinet/captcha/ прописано правило роутинга




'<controller:(cabinet)>/<action:(contacts|captcha)>/' => 'site/<action>',



Собственно при посещении урла /cabinet/contacts/ капча успешно отображается, загружаясь по урл /cabinet/captcha/?v=66bb40d1b29ac

Но по нажатию на капчу она пытается обновиться, делая xhr запрос на урл /cabinet/captcha/?refresh=1&_=1455112401198 и получаем ответ




{hash1: 635, hash2: 635, url: "/site/captcha/?v=56bb412c5a86e"}



и src картинки подменяется на /site/captcha/?v=56bb412c5a86e вместо ожидаемого /cabinet/captcha/?v=56bb412c5a86e, картинка капчи крашится, приходится обновлять страницу

Дело в том что на моем сайте фреймворку передается управление только в двух "директориях", это /cabinet/* и /blog/, соответственно у меня нет возможности обработать /site/

Проблема как я понимаю кроется в коде CaptchaAction, а именно ‘url’ => Url::to([$this->id, ‘v’ => uniqid()]),




 public function run()

    {

        if (Yii::$app->request->getQueryParam(self::REFRESH_GET_VAR) !== null) {

            // AJAX request for regenerating code

            $code = $this->getVerifyCode(true);

            Yii::$app->response->format = Response::FORMAT_JSON;

            return [

                'hash1' => $this->generateValidationHash($code),

                'hash2' => $this->generateValidationHash(strtolower($code)),

                // we add a random 'v' parameter so that FireFox can refresh the image

                // when src attribute of image tag is changed

                'url' => Url::to([$this->id, 'v' => uniqid()]),

            ];

        } else {

            $this->setHttpHeaders();

            Yii::$app->response->format = Response::FORMAT_RAW;

            return $this->renderImage($this->getVerifyCode());

        }

    }



Обновление капчи не учитывает мою настройку виджета




'captchaAction' => '/cabinet/captcha/',



и просто использует id текущего экшена

Можно ли настройками виджета или приложения исправить данную оплошность, не переопределяя CaptchaAction? И можно ли такое поведение считать "недоработкой" капчи?