Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Все доброго времени суток!
В интернет-магазине есть переключение валют по ссылке. Где бы не находился пользователь он может переключить валюту и само собой остаться на прежнем месте. Так же можно передать ссылку с конкретной валютой и пользователю открывшему ссылку должна установиться соответствующая валюта.
Вот почему то у меня возникли с этим сложности)) Создал middleware, отслеживаю в нем наличие переменной currency_id, если есть устанавливаю ее в сессию. Но затык с формированием ссылок, к примеру
<a href="site.ru/catalog/test?currency_id=1">rub</a> приложение устанавливает валюту и возвращает на на site.ru/catalog/test
<a href="site.ru/catalog/test?filter[1]=1&filter[2]¤cy_id=1">rub</a> приложение устанавливает валюту и возвращает на на site.ru/catalog/test?filter[1]=1&filter[2]
или
<a href="site.ru/blog/?currency_id=1">rub</a> => site.ru/blog/
если соорудить нечто эдакое
{{ url(request()->path(), ['test1' => 1, 'test2' => 2]) }}
на выходе получается site.ru/.../1/2 вместо предпалагаемого site.ru/.../?test1=1&test2=2
Изменено Wizardev (12.09.2018 13:14:58)
Не в сети
Собственно ниже приведенный код формирует необходимый результат. Возможно в стандарте есть готовая функция?
$url = request()->fullUrlWithQuery(
request()->merge(['test' => 2])->query()
);
function full_url (array $query = [])
{
$query = !empty($query)
? request()->merge($query)->query()
: request()->query();
return request()->fullUrlWithQuery($query);
}
Изменено Wizardev (12.09.2018 13:58:36)
Не в сети
сорямба, разобрался
единственное хотелось бы чистит ? если query пуст
function full_url (array $query = [])
{
$url = request()->fullUrlWithQuery($query);
if( substr($url, -1, 1) == "?" ) {
$url = rtrim($url, '?');
}
return $url;
}
Не в сети
Страницы 1