Страница 1 из 1

View registerJsFile и GET-параметры

Добавлено: 2017.05.06, 00:28
belotur
Всем привет.
Недавно столкнулся с проблемой и при попытке её решения напоролся вот на что: при использовании registerJsFile() первый атрибут - Url (строка с Url), если в ней написать несколько GET-параметров, то амперсанды заэскейпятся (&, разумеется). Т.о., запрос ломается если у нас более одного GET-параметра.
Я попробовал воспользоваться подстроиться под параметры хелпера Url - передать массив (['//url/address', 'get1' => 'foo', 'get2' => 'bar'], но yii тут же свалился жалуясь на неуспешную попытку разрешения алиаса (т.е. ему нужна строка).

Как же быть, если есть необходимость передать скрипту несколько GET-параметров (обычно это сторонние скрипты сервисов и с ними мы ничего поделать неможем... Например, ReCaptcha от Google)?

Re: View registerJsFile и GET-параметры

Добавлено: 2017.05.07, 22:52
samdark
При чём тут хелпер Url? registerJsFile(), как и описано в документации, принимает готовую строку. Дайте пример кода, который работает не так.

Re: View registerJsFile и GET-параметры

Добавлено: 2017.05.09, 22:04
belotur
Собственно, наткнулся на проблему здесь: https://github.com/himiklab/yii2-recapt ... th=04c6e90

$arguments = http_build_query([
'hl' => $this->getLanguageSuffix(),
'render' => 'explicit',
'onload' => 'recaptchaOnloadCallback',
]);

$view->registerJsFile(
self::JS_API_URL . '?' . $arguments,
['position' => $view::POS_END]
);

попробовал и задумался, в итоговой строке были эскейпы (&) вместо амперсандов (&)...

Re: View registerJsFile и GET-параметры

Добавлено: 2017.05.09, 23:58
ElisDN
Это спецификация HTML все адреса с эскейпами строить.

Re: View registerJsFile и GET-параметры

Добавлено: 2017.05.13, 10:38
belotur
Точно, нашёлъ!