PHP предполагает, что +
из запроса GET является пробелом.Правильный кодированный символ плюс - %2B
.Вы должны просто подготовить строку из запроса на сохранение символа плюс:
$searchKey= urlencode(request()->get('searchKey'));
В вашем случае вы получите @
как %40
.Затем вы можете заменить плюс на правильный код и расшифровать его. Но тогда будьте осторожны с обычными пробелами!
$searchKey = urlencode(request()->get('searchKey'));
$searchKey = urldecode(str_replace('+', '%2B', $searchKey));
https://www.php.net/manual/en/function.urlencode.php https://www.php.net/manual/en/function.urldecode.php
PS Полагаю, это не самое лучшее средство, но онодолжно работать.
PPS Или, если вы можете подготовить плюс как %2B
, прежде чем он будет в параметре поиска, сделайте это