Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 28.06.2016 13:15:23

stsepelin
Откуда: Estonia
Сообщений: 43

Добавить параметр к url

Здравствуйте!

Пишу фильтр для интернет магазина и столкнулся с проблемой.
Для фильтрации я использую ссылки такого типа - {{route('filter', ['color' => 'red')}}, и все работает все замечательно если фильтровать только по цвету или размеру, но что если нужно отфильтровать сначала по цвету, а затем по размеру, например: сначала я выбираю синий цвет, а затем кликаю на размер М и в результате я должен получить все синие вещи размера М.

Проблема заключается в том, что я не знаю каким образом мне отслеживать предыдущий фильтр. Насколько я понимаю, нужно либо брать значение из нынешней страницы, либо я должен просто добавлять новый параметр в ссылку, что мне кажется более логичным, но как это сделать, не знаю.

Не в сети

#2 28.06.2016 13:33:46

Re: Добавить параметр к url

По-моему это очень сомнительный подход к созданию фильтров.
Вот тут очень хорошо объясняется фильтрование, но естественно нужна подписка.

Изменено Stokke (28.06.2016 13:37:12)

Не в сети

#3 28.06.2016 13:55:47

stsepelin
Откуда: Estonia
Сообщений: 43

Re: Добавить параметр к url

Stokke пишет:

По-моему это очень сомнительный подход к созданию фильтров.
Вот тут очень хорошо объясняется фильтрование, но естественно нужна подписка.

Почему сомнительный? Дело в том, что я хотел бы упростить фильтрацию и избавится от клавиши submit, т.е. фильтрация товаров должна происходить при клике на нужную опцию.

Не в сети

#4 28.06.2016 18:26:48

TrueKanonir
Откуда: Ташкент
Сообщений: 221

Re: Добавить параметр к url

Stokke пишет:

По-моему это очень сомнительный подход к созданию фильтров.
Вот тут очень хорошо объясняется фильтрование, но естественно нужна подписка.

Зачем подписка, когда есть рутреккер?))

Не в сети

#5 28.06.2016 18:45:03

Re: Добавить параметр к url

stsepelin пишет:

Почему сомнительный? Дело в том, что я хотел бы упростить фильтрацию и избавится от клавиши submit, т.е. фильтрация товаров должна происходить при клике на нужную опцию.

Да не, теперь более ясно, нормальный, это что-то я с утра "поехал" и начал что-то думать не в ту сторону.
В целом, как я и писал насчет видео, надо что-то вроде этого Dedicated Query String Filtering

TrueKanonir пишет:

Зачем подписка, когда есть рутреккер?))

Ну вообще стоимость подписки не высока, а на рутрекере вроде есть не все серии, я уже не говорю о множестве "одиночных" видосов.
Да и оплачивать её все время никто ведь не заставляет.

Изменено Stokke (28.06.2016 18:49:54)

Не в сети

#6 28.06.2016 19:53:42

stsepelin
Откуда: Estonia
Сообщений: 43

Re: Добавить параметр к url

Stokke пишет:

Да не, теперь более ясно, нормальный, это что-то я с утра "поехал" и начал что-то думать не в ту сторону.
В целом, как я и писал насчет видео, надо что-то вроде этого Dedicated Query String Filtering

Спасибо, изучу это дело сегодня.

Не в сети

#7 30.06.2016 17:58:14

stsepelin
Откуда: Estonia
Сообщений: 43

Re: Добавить параметр к url

Stokke пишет:

Да не, теперь более ясно, нормальный, это что-то я с утра "поехал" и начал что-то думать не в ту сторону.
В целом, как я и писал насчет видео, надо что-то вроде этого Dedicated Query String Filtering

Посмотрел видео, суть в том, что как раз с фильтрацией у меня нет проблем, она организована примерно так же. Проблема в том, что мне нужно привязать это дело к ссылкам.

Пример:

- Фильтр
--- По цене
----- 100 <a href="/filter?price=100">
----- 200 <a href="/filter?price=200">
----- 300 <a href="/filter?price=300">
--- По цвету
---- Красный  <a href="/filter?color=red">
---- Синий  <a href="/filter?color=blue">
--- По размеру
---- 30  <a href="/filter?size=30">
---- 31  <a href="/filter?size=31">
---- 32  <a href="/filter?size=32">

И это все работает сейчас. И, если я сделаю ссылку типа:

<a href="/filter?color=blue&size=32">

тоже все сработает

Вопрос!

Как мне сделать ссылки, которые будут добавлять или изменять необходимый атрибут?

Например:
Без фильтрации у меня был адрес сайта:

/products

Выбрал фильтр по цене и адрес сайта изменился на:

/products/filter?price=100

Затем выбрал фильтр по цвету, соответсвенно адрес сайта изменился на:

/products/filter?price=100&color=red

Ну и наконец изменил цену:

/products/filter?price=300&color=red

Не в сети

#8 01.07.2016 00:01:18

stsepelin
Откуда: Estonia
Сообщений: 43

Re: Добавить параметр к url

Нашел решение, может не самое красивое, но работает.
При return view, отправляю нужные параметры для фильтра, если таковых нет, то приходит null.
Ссылки строю таким образом:
Для красного цвета:
{{route('filter', ['c' => $category, 'p' => $price, 'c' => red, 'size' => $size])}}
По мере выбора фильтров ссылки у них будут "обрастать" необходимыми параметрами.

Не в сети

#9 01.07.2016 11:50:35

Moorik

Re: Добавить параметр к url

Уважаемый ТС.
Не могли бы вы подсказать, как вы организовали базу для характеристик товаров?
Просто сколько я не пробовал сделать характеристики для товаров, не получается нормально организовать структуру бд что бы потом можно было по ним фильтровать

Подвал раздела