Как скрыть или перевести параметры поиска URL?

Сейчас я разрабатываю приложение на базе yii2, и оно должно поддерживать 2 языка. При поиске в gridview результирующий URL выглядит примерно так:

books/?BookSearch[code]=&BookSearch[name]=pet

Есть ли способ перевести или скрыть параметры поиска? (скрытие, вероятно, было бы лучшим вариантом для меня). Часть books/?BookSearch может даже остаться прежней, я хочу изменить атрибуты (в данном случае код и имя)

Вы хотите запутать, зашифровать или сохранить в сеансе? Что-то другое?

mickmackusa 30.01.2019 09:51

Либо запутать (лучший вариант), либо зашифровать

dgtal 30.01.2019 09:56

Использовать POST вместо GET?

brombeer 30.01.2019 10:04

Post медленнее и спрашивает пользователя, хочет ли он отправить данные снова каждый раз, когда он обновляет страницу.

dgtal 30.01.2019 10:07

Вы хотите скрыть ключи или значения BookSearch или и то, и другое? Вероятно, самое главное, ПОЧЕМУ вы хотите это сделать? Должны ли строки запроса работать вечно (как, скажем, постоянная закладка)? Важно ли то, что не понятно людям (и кого это волнует, если кто-то взломает) или оно должно быть «невзламываемым»?

mickmackusa 30.01.2019 10:33

И то, и другое было бы здорово, но достаточно только ключей. Это не для того, чтобы что-то скрывать, просто чтобы иметь возможность иметь имя параметра на языке (в моем случае на итальянском). Я не хочу, чтобы пользователи видели BookSearch[codice]&BookSearch[nome_libro] и т. д. Если я не смогу этого добиться, я буду использовать английский язык для имен и атрибутов моделей, но у меня есть очень специфические имена атрибутов, которые будет трудно понять. перевести.

dgtal 30.01.2019 10:50

Вы должны попытаться создать две отдельные модели поиска для разных языков и две отдельные сетки, которые используют правильную модель. Вам понадобится довольно сложная абстракция, чтобы поддерживать этот вариант использования удобным способом, возможно, это того не стоит, если у вас есть только 2 языка (и одна форма?). Но наверное лучшим вариантом будет отказаться от всей затеи, это доставит вам больше проблем, чем пользы.

rob006 30.01.2019 11:04

Боюсь, @rob006 прав.

dgtal 30.01.2019 11:51
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
8
79
2

Ответы 2

вы можете установить данные в массив сеанса и вызвать их на странице поиска

вы можете обратиться к этому стеку для получения дополнительной информации Массив как переменная сеанса

Я не знаю, отвечаете ли вы, но если вам нравится запутывать «код» и «имя», вы можете использовать это для шифрования

$encryptedData = Yii::$app->getSecurity()->encryptByPassword($data, $secretKey);

и это тоже расшифровать

$data = Yii::$app->getSecurity()->decryptByPassword($encryptedData, $secretKey);

Другие вопросы по теме