Всем привет.
Недавно столкнулся с проблемой и при попытке её решения напоролся вот на что: при использовании registerJsFile() первый атрибут - Url (строка с Url), если в ней написать несколько GET-параметров, то амперсанды заэскейпятся (&, разумеется). Т.о., запрос ломается если у нас более одного GET-параметра.
Я попробовал воспользоваться подстроиться под параметры хелпера Url - передать массив (['//url/address', 'get1' => 'foo', 'get2' => 'bar'], но yii тут же свалился жалуясь на неуспешную попытку разрешения алиаса (т.е. ему нужна строка).
Как же быть, если есть необходимость передать скрипту несколько GET-параметров (обычно это сторонние скрипты сервисов и с ними мы ничего поделать неможем... Например, ReCaptcha от Google)?
View registerJsFile и GET-параметры
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: View registerJsFile и GET-параметры
При чём тут хелпер Url? registerJsFile(), как и описано в документации, принимает готовую строку. Дайте пример кода, который работает не так.
Нравится Yii? Давайте сделаем его лучше!.
Re: View registerJsFile и GET-параметры
Собственно, наткнулся на проблему здесь: 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]
);
попробовал и задумался, в итоговой строке были эскейпы (&) вместо амперсандов (&)...
$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-параметры
Это спецификация HTML все адреса с эскейпами строить.
Re: View registerJsFile и GET-параметры
Точно, нашёлъ!