Скажем, я хочу иметь возможность отправить форму поиска на любой странице, которая добавит ?s=
к текущему URL, но вернет SERP: https://example.com/my-page?s=foobar
.(Я видел, что некоторые сайты делают это вместо того, чтобы указывать на /search?s=.*
- не так, как я, но это иллюстрирует мой вопрос.)
В моих маршрутах Laravel web.php
естьв настоящее время есть способ зарегистрировать это, кроме как, возможно, с использованием регулярного регулярного выражения?
<?php
Route::get('.+?\?.+?\bs={search}', 'SearchController@search');
// This regex is probably wrong, but you get what I was going for,
// and that kinda highlights why this is not an ideal way to do it
?>
Это становится уродливее, когда, скажем, вы хотите захватить несколько параметров $ _GET:
https://example.com/my-page?s=foobar&dept=clothing
В документах Laravel я не нашел ничего, что позволяло бы вам определять параметры строки запроса для параметра Route
$uri
.Рекомендуемый вариант - просто использовать красивые URL-адреса (https://example.com/search/foobar
), но есть определенно допустимые варианты использования для хранения строк запроса.