Сейчас я разрабатываю приложение на базе yii2, и оно должно поддерживать 2 языка. При поиске в gridview результирующий URL выглядит примерно так:
books/?BookSearch[code]=&BookSearch[name]=pet
Есть ли способ перевести или скрыть параметры поиска? (скрытие, вероятно, было бы лучшим вариантом для меня). Часть books/?BookSearch может даже остаться прежней, я хочу изменить атрибуты (в данном случае код и имя)
Либо запутать (лучший вариант), либо зашифровать
Использовать POST вместо GET?
Post медленнее и спрашивает пользователя, хочет ли он отправить данные снова каждый раз, когда он обновляет страницу.
Вы хотите скрыть ключи или значения BookSearch или и то, и другое? Вероятно, самое главное, ПОЧЕМУ вы хотите это сделать? Должны ли строки запроса работать вечно (как, скажем, постоянная закладка)? Важно ли то, что не понятно людям (и кого это волнует, если кто-то взломает) или оно должно быть «невзламываемым»?
И то, и другое было бы здорово, но достаточно только ключей. Это не для того, чтобы что-то скрывать, просто чтобы иметь возможность иметь имя параметра на языке (в моем случае на итальянском). Я не хочу, чтобы пользователи видели BookSearch[codice]&BookSearch[nome_libro] и т. д. Если я не смогу этого добиться, я буду использовать английский язык для имен и атрибутов моделей, но у меня есть очень специфические имена атрибутов, которые будет трудно понять. перевести.
Вы должны попытаться создать две отдельные модели поиска для разных языков и две отдельные сетки, которые используют правильную модель. Вам понадобится довольно сложная абстракция, чтобы поддерживать этот вариант использования удобным способом, возможно, это того не стоит, если у вас есть только 2 языка (и одна форма?). Но наверное лучшим вариантом будет отказаться от всей затеи, это доставит вам больше проблем, чем пользы.
Боюсь, @rob006 прав.






вы можете установить данные в массив сеанса и вызвать их на странице поиска
вы можете обратиться к этому стеку для получения дополнительной информации Массив как переменная сеанса
Я не знаю, отвечаете ли вы, но если вам нравится запутывать «код» и «имя», вы можете использовать это для шифрования
$encryptedData = Yii::$app->getSecurity()->encryptByPassword($data, $secretKey);
и это тоже расшифровать
$data = Yii::$app->getSecurity()->decryptByPassword($encryptedData, $secretKey);
Вы хотите запутать, зашифровать или сохранить в сеансе? Что-то другое?