#php #laravel #url
Вопрос:
Мне нужно скрыть значение URL-адреса в php, так как у меня есть сайт бронирования, и пользователи могут редактировать свое бронирование через URL-адрес, если это необходимо.
Вот как выглядит URL-ссылка.
http://spiaggiasanmontano.it/booking/S12/2021-06-11/2021-06-12/0
я пытаюсь удалить даты в URL-адресе, не нарушая код, есть идеи, как я могу это сделать?
И это контроллер маршрута для него.
Route::get('/booking/{place_id}/{checkin}/{checkout}/{error_msg}', 'PagesController@createbooking')->name('user.createbooking');
Комментарии:
1. почему бы тогда просто не использовать post-запрос??
2. в основном замените ::get на ::post правильно?
3. да, отправьте форму с запросом на публикацию и удалите параметры маршрута, если вы не хотите, чтобы они были в URL.
4. Чего именно вы хотите достичь? Где ты застрял? Если такие данные не имеют отношения к делу, почему бы просто не удалить их? Не лучше ли было бы использовать один уникальный идентификатор для каждого бронирования вместо нескольких значений?
Ответ №1:
Вы можете использовать laravel Encrypter
, если вы все еще хотите передать его в URL-адресе с зашифрованным значением вместо отображения исходного значения
например checkin date
передайте зашифрованную дату в encrypt(checkin)
значение url
encrypt(checkin)
затем в своем контроллере вы можете расшифровать его
$checkinDate= decrypt($checkin);
Например, если у вас есть ссылка, как показано ниже в blade
<a href="{{route('user.createbooking',['palceid',encrypt($checkin)])}}"/>
Ссылка:https://laravel.com/docs/8.x/шифрование#использование шифратора
Комментарии:
1. Правильно ли это записать в URL-маршрут? : Маршрут::get(‘/бронирование/{идентификатор места}/{шифрование(регистрация)}/{шифрование(проверка)}/{error_msg}’, ‘PagesController@createbooking’)->имя(‘пользователь.createbooking’);
2. @tamerjar.его нет в пути . вы должны написать это в блейде, где вы передаете URL