Почему Yii2 экранирует символы в url? Всем привет.
Подскажите почему Yii2 может экранировать некоторые ссылки?
Пример:
вместо ?id=18b97aa654bce41356002559 он показывает ?id%5Boid%5D=18b97aa654bce41356002559. естественно ссылка не отрабатывает.
Я использую mongoDb.
Возможно проблема в том что mongodb использует id как объект. как же его тогда получить?
Как решить эту проблему? Спасибо.

21 Авг 2019 в 06:30
220 +1
0
Ответы
1

Дело в том, что в Yii2 используется URL-кодирование, чтобы защитить приложение от атак на основе внедрения кода. Когда вы передаете параметр id в метод Url::to(), он автоматически кодируется для безопасности.

Если вы хотите передать параметр _id как строку без кодирования, вы можете использовать сырые данные следующим образом:

<a href="<?= \yii\helpers\Url::to(['categories/view', 'id' => $categories['_id'], 'encode' => false]) ?>"><?= $categories['name'] ?></a>

Это позволит передать _id без URL-кодирования. Однако, учтите, что передача сырых данных может представлять уязвимость безопасности, поэтому будьте осторожны при использовании этого метода.

20 Апр 2024 в 13:17
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир